發生了什麼事:重視通過點擊按鈕點擊事件,身體沒有立即觸發它
- 用戶點擊按鈕
- 菜單打開(
<li>
的顯示器=塊) - 關閉菜單功能連接到
<body>
- 關閉菜單功能立即觸發並且菜單關閉
我附加了一個關閉菜單(隱藏li
)到body
(3)的功能,以便在菜單打開後,用戶可以通過單擊屏幕上的任何位置將其關閉。
問題是功能附加到body
立即觸發按鈕點擊功能,所以菜單打開和關閉之前,用戶甚至看到它。
我使用jQuery 1.7的.on()函數來綁定事件。
有沒有人知道一個簡單的解決方案呢? 'bindAfterEvent'或者其他的東西。
代碼:
$(document).ready(function() {
$('#page-content div.center-block div:nth-child(1) ul li:nth-child(1)').on('click', openSubnav);
});
openSubnav = function(e) {
// Shows all li tags and attaches close function to the body
e.preventDefault();
$('#page-content div.center-block div:nth-child(1) ul li').show();
$('body').on('click', closeSubnav);
};
closeSubnav = function() {
// Hides all li tags except the first (used to open)
$('#page-content div.center-block div:nth-child(1) ul li').hide();
$('#page-content div.center-block div:nth-child(1) ul li:nth-child(1)').show();
};
代碼在哪裏? – melancia 2014-09-12 14:50:25