我的网站上有一个菜单按钮(" showmenu"),点击后会打开菜单div。我也有代码关闭菜单,如果用户点击它(我在这里找到)
// code to open / close menu
$(document).ready(function() {
$('#showmenu').click(function() {
$('.menu').slideToggle("fast");
});
// code for clicking outside menu to close
$(document).mouseup(function (e) {
var container = $('.menu');
if (!container.is(e.target) && container.has(e.target).length === 0) {
container.hide();
}
});
});
这段代码给了我一些问题。我可以使用" showmenu"打开菜单。按钮,但我无法再次单击该按钮关闭它。我可以关闭菜单的唯一方法是点击它外面。
有什么建议吗?
答案 0 :(得分:0)
这一行:
container.has(e.target).length === 0
检查点击目标是否不是容器元素的父级。但是,通过检查长度是否等于零,当您想要检查它是否为 true 时,这将评估为 false ,即,当您&#时隐藏容器39;点击了其中一位父母。
此外,您需要更改
e.target
到
$(e.target)
将其视为jquery对象。
将行更改为
container.has($(e.target)).length > 0
它应该有效!