你好,我有一个带有下拉菜单的大型菜单,我使用 toggle() 来显示/隐藏它。不,我需要在使用键盘时选择显示/隐藏它。我已经决定,当您单击输入时,下拉菜单将打开。这一切都运作良好。我在隐藏正确元素时遇到的问题。
我的代码如下
<ul>
<li class="menuContainer">
<a class="top active"><span id="home">Home</span></a>
<div class="sub" style="display: none">
<ul>
<li>mega menu item 1</li>
<li>mega mneu item 2</li>
<li>mega menu item 3</li>
</ul>
</div>
</li>
<li class="menuContainer">
<a class="top active"><span id="profile">Profile</span></a>
<div class="sub" style="display: none">
<ul>
<li>mega menu item 1</li>
<li>mega mneu item 2</li>
<li>mega menu item 3</li>
</ul>
</div>
</li>
</ul>
使用键盘打开这个我使用这个脚本
$(window).keyup(function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13 && $('li.menuContainer > a.top:focus').length) {
$div = $(this).next("div.sub");
$div.show();
}
});
一切正常,除了如果我想关闭管理员的 megamenu 下拉菜单,我需要打开配置文件的大型菜单。 我想要的是,一旦您在个人资料上“点击”,您应该关闭 div.sub,如果您单击输入,您将正确打开。 我试过用
$("li.menuContainer div.sub").not($div).hide();
但这不起作用,因为它打开和隐藏相同的元素。 有帮助吗?
最佳答案
是和白痴:)
else if (code == 9 && $('li.menuContainer > a.top:focus').length) {
$('div.sub').hide();
}
这行得通
关于javascript - 如何在使用键盘而不是下一个()时隐藏()元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47140302/