我希望按ID toggleThisDiv
选择关注元素。标记看起来像:
<li id="liCategory" runat="server">
<asp:HyperLink ID="lnkCategory" runat="server">
<span><asp:Literal ID="litCategory" runat="server" Visible="true" /></span>
<asp:Image ID="imgMan" runat="server" Visible="false" /></asp:HyperLink>
<asp:Button ID="btnToggleDiv" runat="server" Text="+" Visible="false" />
</li>
<div id="toggleThisDiv" runat="server" style="display:none;margin-top:-16px;">
和jQuery:
$(document).ready(function () {
$('[id*="btnToggleDiv"]').click(function () {
$(this).next().slideToggle(100);
return false;
});
});
当按钮位于listitem之外时,这可以工作,但这都在转发器中,如果我这样做,所有创建的按钮将彼此相邻而不是在其关联的列表项中。
我正在寻找jQuery中允许我选择下一个div(toggleThisDiv)的东西,这可能吗?
三江源
答案 0 :(得分:1)
如果生成使用相同标识符的元素,请使用唯一ID或类。
要定位单击元素的当前父元素之外的元素,您可以找到与选择器匹配的最接近的父元素,然后是下一个元素等。
$(document).ready(function () {
$('[class*="btnToggleDiv"]').on('click', function () {
$(this).closest('li').next('div').slideToggle(100);
return false;
});
});
答案 1 :(得分:0)
使用类似的方法选择toggleThisDiv
$('#<%= toggleThisDiv.ClientID %>')
当您的asp代码生成网站时,您的ID将与您提供的ID不同。这是因为它们在服务器上运行。无论何时使用runat服务器,请使用上面的格式查找生成的ID。
你应该在里面使用一个类来转发器。