2014-07-03 5 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(); 
    } 
}); 

При применении этой функции на мышке моя функция переключения больше не работает. Меню всегда будет оставаться открытым, если щелкнуть несколько раз на кнопке (тогда как он должен скрывать &).

jsfiddle here

Любая идея, как я могу это исправить?

+0

работал для меня в Firefox и хром – 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