js 中事件綁定


事件綁定

onclick -->事件冒泡,重寫onclick會覆蓋之前屬性,沒有兼容性問題。

ele.onclick = null; 解綁單擊事件,將onclick屬性設(shè)為null 即可

addEventListener(event.type, handle, boolean) IE8及以下不支持,屬于DOM2級的方法,可添加多個方法不被覆蓋。

//事件類型沒有on
//參數(shù)boolean: false 表示在事件第三階段(冒泡)觸發(fā), true表示在事件第一個階段(捕獲)觸發(fā)。
//如果handle是同一個方法,只執(zhí)行一次
ele.addEventListener(event.type, handle, boolean);

//解綁事件, 參數(shù)和綁定一樣
ele.removeEventListener(event.type, handle, boolean);

attachEvent(event.type, handle) IE特有,兼容IE8及以下,可添加多個事件處理程序,只支持冒泡階段。

//事件類型要加on
//如果handle是同一個方法,綁定幾次執(zhí)行幾次
ele.attachEvent('onclick', function(){});

//解綁事件,參數(shù)和綁定一樣
ele.detachEvent('onclick', function(){});

默認(rèn)事件行為:href ="" submit表單提交等

阻止默認(rèn)事件

return false 阻止獨享屬性(通過on這種方式)綁定的事件的默認(rèn)事件。

ele.onclick = function(){
  ******
  return false;
};

event.preventDefault() 阻止通過addEventListener() 添加的事件的默認(rèn)事件

ele.addEventListener('click', function(e){
  var event = e || window.event;

  event.preventDefault();
}, false);

event.returnValue = false阻止通過attachEvent() 添加的事件的默認(rèn)事件

ele.attachEvent('onclick', function(e){
  var event = e || window.event;

  event.returnValue = false;
}, false);

阻止事件冒泡 事件捕獲

event.stopPropagation(); //阻止事件的進(jìn)一步傳播,包括(冒泡,捕獲)
event.cancelBubble = true; //true 阻止冒泡

參考文獻(xiàn):http://www.cnblogs.com/zhangmingze/p/4864367.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容