2015-10-20 128 views
0

建立一個移動菜單,並希望當用戶點擊文檔時,而不是菜單關閉菜單,如果它打開。 問題是,當第一次點擊被打開時,它會自動關閉手機。我努力讓這一點工作。jQuery關閉菜單自動關閉

該代碼識別點擊,以便窗口檢測到正確的操作。我只想念我想的最後一步。

代碼是:

$('.mobile-menu-button').click(function(e) { 
    e.preventDefault(); 
    $('.mobile-menu').slideToggle('slow'); 
}); 
// close on off click 
$(window).click(function(e){ 
    e.preventDefault(); 
    e.stopPropagation(); 
    if($('.mobile-menu').css("display") == 'block') { 
     $('.mobile-menu').slideToggle(); 
     console.log('click'); 
    } 
}); 

感謝

+0

加上'e.stopPropagation();'到菜單單擊處理程序。 – Amit

+0

這不起作用 – Jolen

回答

1

您可以使用事件委託。當你點擊'.mobile-menu'時,你打開它或關閉它,當你點擊其他地方時你只關閉它。

$(window).on('click', function(e){ 
    e.preventDefault(); 
    if ($(e.target).hasClass('mobile-menu-button')) { 
     $('.mobile-menu').slideToggle('slow'); 
    } else { 
     $('.mobile-menu').css('display') === 'block' && $('.mobile-menu').slideUp(); 
    } 
}); 

這個搗鼓一個基本的例子:https://jsfiddle.net/6e7atrmn/2/

+0

它不起作用,菜單不顯示 – Jolen

+0

更新,這是一些細節,你shohld得到的想法表單stackoverflow而不是代碼 –

+0

不起作用,做同樣的事情,我的代碼以前做過。向下滑動然後立即向上滑動。 – Jolen