通过CSS,我将所有div设置为visibility :hidden
。通过单击导航栏中的项目,我希望将目标div设置为visibility :visible
。这工作得很好,但是如果它已经可见,我想避免再次设置它。
该代码不起作用
function showNewElement(actID) {
ID = actID.substring(1, actID.length);
$('.mainDiv:visible').css("visibility", "hidden");
$("#" + ID + ':hidden').css("visibility", "visible").hide().fadeIn('fast');
}
所以我必须将其包装在if语句中
function showNewElement(actID) {
var ID = actID.substring(1, actID.length);
if ($("#" + ID).css("visibility") != "visible") {
$('.mainDiv').css("visibility", "hidden");
$("#" + ID).css("visibility", "visible").hide().fadeIn('fast');
}
}
为什么它不起作用?
如果元素占用了文档中的空间,则认为它们是可见的。
具有可见性:隐藏或不透明:0的元素被视为可见,因为它们仍然占用布局中的空间。
因此,尽管您看不到元素,但它们不在:visible
集合中。
相反,您可以做的是display: none
在mainDiv
元素上使用。那么它将被认为是不可见的
.mainDiv {
display: none;
}
然后将jQuery更改为
function showNewElement(actID) {
ID = actID.substring(1, actID.length);
$('.mainDiv:visible').hide();
$("#" + ID + ':hidden').fadeIn();
}
参见修改后的JSFiddle
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句