2016-12-20 94 views
0

在我的網站上,我有一個關閉的手風琴菜單(菜單-1)。如果用戶沒有爲被網站上的前5秒,菜單上單擊,在菜單下拉自動使用這個JS代碼:如何在點擊後取消觸發

setTimeout(function() { 
    $('#menu-1').trigger('click'); 
}, 5000); 

我的問題是,當用戶不等待5秒鐘,並在觸發器之前點擊菜單,觸發器仍然關閉並最終關閉菜單。如果用戶在觸發菜單之前點擊菜單,如何使觸發器取消?

+0

嘗試用條件 –

回答

4

您需要將超時ID存儲在變量中,以便稍後可以在用戶單擊菜單時將其取消。像這樣...

var timeout_id = setTimeout(function() { 
    $('#menu-1').trigger('click'); 
}, 5000); 

$('#menu-1').click(function() { 
    if (timeout_id) { 
     clearTimeout(timeout_id); 
     timeout_id = 0; 
    } 
}); 
+0

變量是工作,但菜單最終還是在用戶打開它 –

+0

沒關係關閉後,它的作品,我沒有看到你的編輯 –

+0

@AlexKhomyakov或許你會接受這個答案? – user1751825