js 解決辦法
- event.preventDefault() :阻止默認行為,可以用 event.isDefaultPrevented() 來確定preventDefault是否被調用過了
- event.stopPropagation() :阻止事件冒泡,事件是可以冒泡的,為防止事件冒泡到DOM樹上,不觸發任何前輩元素上的事件處理函數,可以用 event.isPropagationStopped() 來確定stopPropagation是否被調用過了
$("#myDiv").click(function(e){ e.stopPropagation(); //表示阻止向父元素冒泡 e.preventDefault(); //阻止 方法阻止元素發生默認的行為(例如,當點擊提交按鈕時阻止對表單的提交或者a標簽)。 });
jquery 解決辦法
unbind() 方法移除被選元素的事件處理程序。
該方法能夠移除所有的或被選的事件處理程序,或者當事件發生時終止指定函數的運行。
該方法也可以通過 event 對象取消綁定的事件處理程序。該方法也用於對自身內部的事件取消綁定(比如當事件已被觸發一定次數之后,刪除事件處理程序)。
注意:如果未規定參數,則 unbind() 方法會刪除指定元素的所有事件處理程序。
注意:unbind() 方法適用於任意由 jQuery 添加的事件處理程序。
object.unbind("click").click(function () { ... });