jQuery切换和mouseup冲突

时间:2014-07-03 01:02:55

标签: javascript jquery toggle event-bubbling mouseup

我有一个简单的按钮,可以点击菜单点击

如果菜单展开/可见,我在点击页面上的任何位置时隐藏它(菜单本身的一部分)。

var menuBtn = $(".btn-menu"),
menuContainer = $(".menu"),
menuChildren = $(".menu").find("*");

menuBtn.on("click", function() {
    menuContainer.toggle();
});

$(window).mouseup(function(e){
    if(!menuContainer.is(e.target) && !menuChildren.is(e.target)){
        menuContainer.hide();
    }
});

在mouseup上应用该功能时,我的切换功能不再有效。如果在按钮上多次单击,菜单将始终保持打开状态(而应隐藏和显示)。

jsfiddle here

我知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

在点击之前触发了mouseup事件。 试试这个

$(window).mouseup(function(e){
    if(!menuContainer.is(e.target) && !menuChildren.is(e.target) && !menuBtn.is(e.target)){
        menuContainer.hide();
    }
});

fiddle js

相关问题