有些時候可以使用 e.stopPropagation(); e.preventDefault();來阻止事件冒泡,和默認事件的執行。但不能阻止事件的追加。
什么情況下要阻止事件的追加呢?
比如:
點擊“結賬”,這樣的操作時,結賬本身有自己的事件,但結賬前要判斷是否登錄。
我們可能會這樣寫:
Js代碼
如果點擊“我的主頁”也有登錄判斷
登錄判斷代碼
if(isLogin){ //判斷是否登錄
console.log("沒有登錄")
}else{
//個人中心
}
重要:.確保登錄判斷事件是第一個綁定的事件。
Demo代碼
$._data($('.isLogin').get(0))
會看到如下:
Js代碼
Object { events={...}, handle=function()}
點擊可以看到事件數組,方便查看元素上綁定了什么樣的事件。
新聞熱點
疑難解答