事件綁定
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