附加后JQuery事件没有触发

时间:2012-07-25 19:27:57

标签: jquery razor

好的,如果这会影响答案,我会使用Razor和jquery 1.5.1。

我有一些简单的jquery,我从这个网站上的另一篇文章中复制过来。我有使用Razor引擎渲染的可变数量的部分。

我希望能够隐藏/显示每个部分下的数据(包含在div中)。

所以HTML是

<div>Course 1<a class="toggle" href="javascript:void(0);">Click</a>
<div class="contentHidden" style="display:none;"> content here </div></div>
<div>Course 2<a class="toggle" href="javascript:void(0);">Click</a>
<div class="contentHidden" style="display:none;"> content here </div></div>

jquery是;

<script type="text/javascript">
$(document).ready(function(e) {
  $(".toggle").click(function (e) {
    e.preventDefault();
    $(this).children("div").toggle();
  });
});

jquery位于视图的底部,我已添加document.ready位以确保<a>标记确实存在。

我考虑过的一件事是我使用剃刀@foreach()创建页面内容,但是在内容流式传输到浏览器之前必须在服务器上进行,所以我不相信我是在创建链接之前这样做的,不应该使用live或delegate。

但我现在已经陷入困境,所以有人可以建议我如何追踪这一点(或者更好地解决它: - )

1 个答案:

答案 0 :(得分:4)

a个元素没有div个孩子。相反,它是下一个元素:

$(this).next("div").toggle();

视觉上div可能位于a元素下。然而,重要的是DOM结构,其中diva的兄弟。