2

好的,如果这会影响答案,我正在使用 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>标签确实存在。

我考虑过的一件事是我正在使用 razor 创建页面内容@foreach(),但是在内容流式传输到浏览器之前必须在服务器上发生,所以我不相信我在创建链接之前这样做,并且不需要使用 live 或委托。

但是我现在被困住了,所以任何人都可以建议我如何追踪它(或者更好地修复它:-)

4

1 回答 1

4

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

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

视觉上div可能在a元素之下。然而,重要的是 DOM 结构,div其中a.

于 2012-07-25T19:30:19.293 回答