我一直在绞尽脑汁地想这个问题,但不明白为什么当我将 div 放入转发器中时 jQuery 不会显示/隐藏它。这是我试图显示/隐藏的 div:
<div id="EmailForMoreInfo">Hey there!</div>
我用来显示/隐藏它的 jQuery 在这里:
if (event.srcElement && event.srcElement.hash == "#2") {
$("#EmailForMoreInfo").show();
} else {
$("#EmailForMoreInfo").hide();
}
“EmailForMoreInfo”的位置放置在转发器内:
<div class="panes">
<asp:Repeater ID="rptProductsCategories" runat="server">
<ItemTemplate>
<div id="tabs-<%# DataBinder.Eval(Container.DataItem, "Key") %>">
<div id="EmailForMoreInfo">Hey there!</div>
<br style="clear:both;" />
</div>
</ItemTemplate>
</asp:Repeater>
</div>
当“EmailForMoreInfo”放置在中继器内时,上述 jQuery 不起作用。将其移到中继器之外,一切正常。分析 jQuery 表明,它发现该元素在任何一种情况下都很好,但只有当它位于转发器之外时,它才能真正正确地显示/隐藏。否则,它总是显示。还有其他人遇到过这个问题并有解决方法吗?
最佳答案
中继器让我觉得页面上不止一个。基本的第一天 html 说:你不能拥有具有相同 ID 的东西!
所以,你必须给它一个通用的类,但是一个唯一的ID。不过,我们必须查看更多代码才能弄清楚解决此问题的最佳方法到底是什么。
当页面上有多个具有相同 id 的内容时,jquery 会变得非常困惑。
关于将 div 移动到另一个 div 中时,jQuery 显示/隐藏不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875705/