[英]Jquery if visible show another div, else hide
当大型菜单处于活动状态时,我正在尝试覆盖整个页面。 我正在尝试这样的事情:
function overlay_toggle() {
if ($('.mega-sub-menu').css("visibility") == "hidden") {
$('#twc-page-overlay').css({ "visibility": "hidden" });
}
else {
$('#twc-page-overlay').css({ "visibility": "visible" });
}
}
目前它正在做这项工作。 任何想法我在这里缺少什么?
谢谢!
HTML 是这样的:
<header>
<nav>
<ul>
<li>
<ul class="mega-sub-menu"></ul>
</li>
</ul>
</nav>
</header>
<div id="twc-page-overlay"></div>
这是行不通的,只是用.is(":visible")
检查知名度, .show()
使它可见和.hide()
来隐藏它
if ($('.mega-sub-menu').is(":visible") === false) { $('#twc-page-overlay').hide(); } else { $('#twc-page-overlay').show(); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <header> <nav> <ul> <li> <ul class="mega-sub-menu"> <li>Heheh</li> </ul> </li> </ul> </nav> </header> <div id="twc-page-overlay">Hello</div>
您可以将其写在一行中:
$('#twc-page-overlay').toggle($('.mega-sub-menu').is(':visible'));
如果你想使用visibility
而不是display
,你可以用 toggleClass 做同样的事情:
.hidden { visibility: hidden; }
$('#twc-page-overlay').toggleClass('hidden', $('.mega-sub-menu').is(':hidden'));
.toggleClass() 和 .toggle() 都接受一个布尔值来分别应用/删除或显示/隐藏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.