javascript中事件對象註冊與刪除
阿新 • • 發佈:2019-03-02
ie8 ply 設置 als google 一個 標簽設置 this ...
事件對象
註冊事件
- 直接給dom對象設置屬性,只能給對象設置一個屬性,如果設置多個事件處理函數,則最後的生效;
- 給html標簽設置屬性,(若法1和法2同時使用,則法1生效);
- 事件註冊
綁定事件監聽函數
addEventListener("click", fun, false); 兼容火狐、google、ie9;
attachEcent("onclick", fun); 兼容ie8及以下。
綁定事件監聽函數可以和前面兩個同時使用
刪除事件
- btn.onclick = null; 將事件置空,刪除事件,可以使用在火狐,google,ie所有瀏覽器,但不能刪除通過綁定監聽函數設置的監聽事件
- removeEventListener 刪除事件,兼容火狐,google,ie9
修改this的指向
call函數
? fun.call(參數1,參數2, 參數3, ...)
執行fun函數,並且將參數1的值賦給this,參數2,參數3作為實參傳遞給形參。
apply函數
? fun.apply(參數1,[參數2, 參數3, ...])
執行fun函數,並且將參數1的值賦給this,參數2,參數3作為實參傳遞給形參,以數組形式傳遞。
註冊事件兼容寫法
/* 參數: 給誰添加 事件類型 處理函數 適配標準瀏覽器和IE低版本 */ function addEvent(target, type, handler) { if (target.addEventListener) { target.addEventListener(type, handler, false); } else { window[handler] = function () { handler.call(target); } target.attachEvent("on" + type, window[handler]); } }
刪除事件兼容寫法
//刪除事件
function removeEvent(target, type, handler) {
if (target.removeEventListener) {
target.removeEventListener(type, handler, false);
} else {
target.detachEvent("on" + type, window[handler]);
}
}
javascript中事件對象註冊與刪除