国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談addEventListener和attachEvent的區(qū)別

2019-11-20 09:29:23
字體:
供稿:網(wǎng)友

• addEventListener共有3個參數(shù),如下所示:

element.addEventListener(type,listener,useCapture);

參數(shù) 參數(shù)說明
element 要綁定事件的對象,及HTML節(jié)點。
type 事件名稱,注意去掉事件前邊的“on”,比如“onclick”要寫成“click”,“onmouseover”要寫成“mouseover”。
listener 要綁定的事件監(jiān)聽函數(shù),注意只寫函數(shù)名,不要帶括號。
userCapture 事件監(jiān)聽方式,只能是true和false:true,采用capture(捕獲)模式;false,采用bubbling(冒泡)模式。如無特殊要求,一般是false。

這里有必要說一下捕獲模式和冒泡模式的區(qū)別。


如圖所示,有兩層div元素,而且都設(shè)定有click事件,一般來說,如果我在內(nèi)層藍(lán)色的元素上click不只會觸發(fā)藍(lán)色元素的click事件,還會同時觸發(fā)紅色元素的click事件,而useCapture這個參數(shù)就是在控制這時候兩個click事件的先后順序。如果是false,那就會使用bubbling(冒泡)模式,他是從內(nèi)而外的流程,所以會先執(zhí)行藍(lán)色元素的click事件再執(zhí)行紅色元素的click事件,如果是true,那就是capture(捕獲)模式,和bubbling(冒泡)模式相反是由外而內(nèi),會先執(zhí)行紅色元素的click事件才執(zhí)行藍(lán)色元素的click事件。

如果不同層的元素使用的useCapture不同,會先從最外層元素往目標(biāo)元素尋找設(shè)定為capture(捕獲)模式的事件,到達(dá)目標(biāo)元素執(zhí)行目標(biāo)元素的事件后,再尋原路往外尋找設(shè)定為bubbling(冒泡)模式的事件。

•attachEvent共有2個參數(shù),如下所示:

element.attachEvent(type,listener);

參數(shù) 參數(shù)說明
element 要綁定事件的對象,及HTML節(jié)點。
type 事件名稱,注意加上事件前邊的“on”,比如“onclick”和“onmouseover”,這是與addEventListener的區(qū)別。
listener 要綁定的事件監(jiān)聽函數(shù),注意只寫函數(shù)名,不要帶括號。

addEventListener()是標(biāo)準(zhǔn)的綁定事件監(jiān)聽函數(shù)的方法,是W3C所支持的,Chrome、FireFox、Opera、Safari、IE9.0及其以上版本都支持該函數(shù);但是,IE8.0及其以下版本不支持該方法,它使用attachEvent()來綁定事件監(jiān)聽函數(shù)。所以,這種綁定事件的方法必須要處理瀏覽器兼容問題。

兼容IE和非IE瀏覽器事件綁定的代碼:

function addEvent(obj,type,handle){  try{ // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本    obj.addEventListener(type,handle,false);  }catch(e){    try{ // IE8.0及其以下版本      obj.attachEvent('on' + type,handle);    }catch(e){ // 早期瀏覽器      obj['on' + type] = handle;    }  }}

或者

function regEvent(ele, event_name, fun){  if (window.attachEvent)     ele.attachEvent(event_name, fun); //IE瀏覽器  else  {    event_name = event_name.replace(/^on/, “”);  //如果on開頭,刪除on,如onclick->click    ele.addEventListener(event_name, fun, false); //非IE瀏覽器  }}

以上這篇淺談addEventListener和attachEvent的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 云阳县| 盐源县| 天祝| 顺平县| 澜沧| 吴堡县| 东光县| 阿拉善右旗| 交口县| 武安市| 碌曲县| 佛冈县| 连云港市| 吉林省| 乌恰县| 南昌市| 伊吾县| 胶南市| 东莞市| 龙里县| 师宗县| 儋州市| 万宁市| 天津市| 昌黎县| 襄樊市| 惠东县| 桦甸市| 新津县| 保定市| 遂平县| 正定县| 锦州市| 渝中区| 长春市| 永宁县| 佛冈县| 延川县| 将乐县| 瑞丽市| 博白县|