我有一个应用程序,可以在不同级别过滤数据集,并且 - 出于性能原因 - 能够独立切换嵌套div的相应显示将是很好的。出现的问题是切换会将显示属性更改回隐藏子项上的原始状态,但如果其中一个祖先已隐藏,则不会将其更改为无。
要复制:this JSFiddle,
答案 0 :(得分:7)
切换可以采用布尔值
$(selector).toggle(false);
.toggle(showOrHide)
showOrHideA布尔值,指示是否显示或隐藏元素。
<强>更新强>
您可以通过创建一个简单的hidden
css类来调用toggleClass()
而不是使用toggle()
来实现所需的功能。如果相关元素不可见,toggle()
似乎完全跳过了自己的功能。
http://jsfiddle.net/hunter/GufAW/3/
$("#toggle-1").click(function() {
$("#1").toggleClass("hidden");
});
$("#toggle-2").click(function() {
$("#2").toggleClass("hidden");
});
$("#toggle-3").click(function() {
$("#3").toggleClass("hidden");
});
答案 1 :(得分:1)
尝试直接切换css display
属性:
$("#toggle-1").click(function() {
$("#1").css("display", ($("#1").css("display")==="none") ? "block" : "none");
});
$("#toggle-2").click(function() {
$("#2").css("display", ($("#2").css("display")==="none") ? "block" : "none");
});
$("#toggle-3").click(function() {
$("#3").css("display", ($("#3").css("display")==="none") ? "block" : "none");
});