首頁  >  文章  >  web前端  >  javascript 相容於各瀏覽器的事件_javascript技巧

javascript 相容於各瀏覽器的事件_javascript技巧

WBOY
WBOY原創
2016-05-16 16:16:111259瀏覽

呼叫事件:

事件物件
什麼是事件物件?在觸發dom上的事件是都會產生一個事件物件event。例如滑鼠點擊的時候,自己就會產生例如點擊的類型啊 還要那個元素發出的
dom 事件對象   type 屬性用於取得事件對象, target屬性 用於取得事件目標,stopPropagation()方法 阻止事件冒泡 preventDefault阻止事件的預設行為
IE中的事件對象  type 屬性 用於取得事件對象, srcElement屬性 用於取得事件目標 cancelBubble屬性  用於阻止事件冒泡  設為true 是表示阻止 false表示不阻止
returnValue  屬性 用來阻止事件的預設行為 設定為false的時候表示阻止

複製程式碼 程式碼如下:

// 相容於各個瀏覽器  跨瀏覽器事件處理------- 統一進行封裝
var EventHandle = {
    // element : 元素 , type: 點選事件 ,handle : 實行的方法
    //新增句柄
    addEventHandle: function (element, type, handler) {
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);//---false  //代表冒泡 dom2級
        }
        else if (element.attachEvent) {
            element.attachEvent("on" type, handler);
        } else {
            element["on" type] = handler;
        }
    },
    //刪除句柄  事件處理不起作用
    removeEventHandle: function (element, type, handler) {
        if (element.removeEventListener) {   // 支援dom2級的事件處理  type是 onclick
            element.removeEventListener(type, handler, false); //---false  //代表冒泡
        }
        else if (element.detachEvent) {
            element.detachEvent("on" type, handler);  //支援IE 
        } else {
            element["on" type] = null;// dom0級事件處理   傳統的點選事件
        }
    },
    //取得事件物件 相容瀏覽器的所有物件
    getEvent: function (event) {
        return event ? event : window.event;  //在IE瀏覽器的低版本所需要的是window.event
    },
    //取得事件類型  點選呢還是滑鼠移動
    getType:function(event){
        return event.type;
    },
    //取得目前的那個元素
    getElement: function (event) {
        return event.target || event.srcElement;
    },
    //阻止事件的預設行為
        : function (event) {
        if (event.preventDefault) {
            event.preventDefault();
        }
        else {
            event.returnValue = false;
        }
    },
    //阻止事件冒泡
    stopPropagation: function (event) {
        if (event.stopPropagation) {
            event.stopPropagation();
        }
        else {
            event.cancelBubble = true;
        }
    }
}
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn