2014-07-03 38 views
0

我有一個簡單的按鈕,切換菜單的onclickjQuery的切換和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

任何想法,我怎麼能解決這個問題?

+0

在Firefox工作對我來說和Chrome – charlietfl

+0

重現該問題:點擊菜單按鈕,然後點擊網頁的任意位置上,並最終再次嘗試點擊按鈕。你會看到切換不起作用。 – John

+0

對我來說工作正常,我在2個瀏覽器中完成了這些步驟 – charlietfl

回答

0

mouseup事件在點擊前觸發。 試試這個

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

fiddle js

+0

它的工作原理,感謝您的幫助! – John