JS中DOM事件

我們在瀏覽網(wǎng)頁時(shí),點(diǎn)擊鼠標(biāo)或者按下鍵盤時(shí),網(wǎng)頁需要給我們一個相應(yīng)的事件,而這種相應(yīng)事件就是JavaScript與HTML進(jìn)行交互,JavaScript是通過事件與HTML進(jìn)行交互的。

JavaScript中事件有很多種,我們這里就直接把他包裝成一個對象,方便以后兼容的調(diào)用。

<p>示例文字</p>
<script>
var eventUtil={
    //事件監(jiān)聽
    addHandler:function(element,type,handler){
       if(element.addEventListener){
            element.addEventListener(type,handler,false);//標(biāo)準(zhǔn)瀏覽器規(guī)范
       }else if(element.attachEvent){
            element.attachEvent('on'+type,handler);//兼容老版IE
       }else{
            element['on'+type]=handler;
       }
    },
    // 刪除事件監(jiān)聽
    removeHandler:function(element,type,handler){
        if(element.removeEventListener){
            element.removeEventListener(type,handler,false);
        }else if(element.detachEvent){
            element.detachEvent('on'+type,handler);
        }else{
            element['on'+type]=null;
        }
    },
   //獲取事件
    getEvent:function(event){
        return event?event:window.event;
    },
    //獲取事件類型  
    getType:function(event){
        return event.type;
    },
    getElement:function(event){
        return event.target || event.srcElement;
    },
    //阻止標(biāo)簽?zāi)J(rèn)行為
    preventDefault:function(event){
        if(event.preventDefault){
            event.preventDefault();
        }else{
            event.returnValue=false;
        }
    },
    //阻止冒泡事件
    stopPropagation:function(event){
       if(event.stopPropagation){
            event.stopPropagation();
        }else{
            event.cancelBubble=true;
        }
    }
}
var p = document.getElementsByTagName("p")[0];
p.onclick = function(e){
    console.log(eventUtil.getElement(e));
    console.log(eventUtil.getEvent(e));
    console.log(eventUtil.getType(e));
}
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容