我有一个使用转发器和jQuery的c#应用程序在我的应用程序中添加一个小吃。当内容向上和向下滑动以隐藏或显示点击的 ONE 部分时,jQuery的第一部分正常运行,但第二部分更改所有类,包括单击部分内的类。这是为什么?
这是我的转发器布局:
<ItemTemplate>
<div class="head"><span class="expand"> </span> <%#Eval("Job_Title") %></div>
<div class="row" style="margin:0px 0px 20px 50px; display: none;">
<div><%#Eval("Status") %></div>
<div><%#Eval("Department") %></div>
<div><%#Eval("Posting_Site") %></div>
<div><%#Eval("Job_Duties") %></div>
</div>
</ItemTemplate>
这是我的jQuery:
<script type="text/javascript">
$(function () {
$('.head').click(function () {
$(this).next('div.row').stop(true, true).slideToggle(400, function () {
$('.expand').toggleClass('collapse');
});
});
});
</script>
答案 0 :(得分:2)
$('.expand')
定位该类的所有元素,如果您只想定位当前.head
内的那个元素
$(this).prev('.head').find('.expand').toggleClass('collapse')
或相反的是
var thisOne = $(this).prev('.head').find('.expand');
$('.expand').not(thisOne).toggleClass('collapse');
答案 1 :(得分:2)
您使用类作为选择器然后使用next,意味着您正在迭代包含'div.row'的每个'head'。
你需要改变它:
$(function () {
$('.head').click(function () {
$('.head div.row').slideToggle(400, function () {
$('.expand').toggleClass('collapse');
});
});
});