javascript中事件對象注冊與刪除


事件對象

注冊事件

  1. 直接給dom對象設置屬性,只能給對象設置一個屬性,如果設置多個事件處理函數,則最后的生效;
  2. 給html標簽設置屬性,(若法1和法2同時使用,則法1生效);
  3. 事件注冊
    綁定事件監聽函數
    addEventListener("click", fun, false); 兼容火狐、google、ie9;
    attachEcent("onclick", fun); 兼容ie8及以下。
    綁定事件監聽函數可以和前面兩個同時使用

刪除事件

  1. btn.onclick = null; 將事件置空,刪除事件,可以使用在火狐,google,ie所有瀏覽器,但不能刪除通過綁定監聽函數設置的監聽事件
  2. 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]);
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM