事件對象
注冊事件
- 直接給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]);
}
}
