为什么我的 jQuery toggleClass 在我的 C# 转发器中不能正常工作?
Why does my jQuery toggleClass not work properly within in my C# repeater?
我有一个使用中继器的 C# 应用程序,jQuery 为我的应用程序添加了一点活力。 jQuery 的第一部分功能正常,因为内容上下滑动以隐藏或显示任何 ONE 部分已被点击,但第二部分改变所有 类 包括单击的部分内的那个。这是为什么?
这是我的转发器布局:
<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>
$('.expand')
以 class 为目标的所有元素,如果你只想以当前 .head
中的元素为目标,你会做
$(this).prev('.head').find('.expand').toggleClass('collapse')
或者相反的是
var thisOne = $(this).prev('.head').find('.expand');
$('.expand').not(thisOne).toggleClass('collapse');
您使用 class 作为您的选择器,然后使用 next,这意味着您正在迭代包含 'div.row'.
的每个 'head'
你需要这样改:
$(function () {
$('.head').click(function () {
$('.head div.row').slideToggle(400, function () {
$('.expand').toggleClass('collapse');
});
});
});
我有一个使用中继器的 C# 应用程序,jQuery 为我的应用程序添加了一点活力。 jQuery 的第一部分功能正常,因为内容上下滑动以隐藏或显示任何 ONE 部分已被点击,但第二部分改变所有 类 包括单击的部分内的那个。这是为什么?
这是我的转发器布局:
<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>
$('.expand')
以 class 为目标的所有元素,如果你只想以当前 .head
中的元素为目标,你会做
$(this).prev('.head').find('.expand').toggleClass('collapse')
或者相反的是
var thisOne = $(this).prev('.head').find('.expand');
$('.expand').not(thisOne).toggleClass('collapse');
您使用 class 作为您的选择器,然后使用 next,这意味着您正在迭代包含 'div.row'.
的每个 'head'你需要这样改:
$(function () {
$('.head').click(function () {
$('.head div.row').slideToggle(400, function () {
$('.expand').toggleClass('collapse');
});
});
});