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

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

DOM 中的事件處理介紹

2024-05-06 14:22:36
字體:
供稿:網(wǎng)友
該接口提供了 'addEventListener' 和 'removeEventListener' 方法,用來綁定或解綁一個(gè) EventListeners 接口到一個(gè) EventTarget。

DOM 2 Events 中定義了 Event 接口,用來提供事件的上下文信息,它提供了若干標(biāo)準(zhǔn)屬性和方法。 實(shí)現(xiàn) Event 接口的對(duì)象一般作為第一個(gè)參數(shù)傳入事件處理函數(shù),以用來提供當(dāng)前事件相關(guān)的一些信息。

事件注冊(cè)
根據(jù) DOM 2 Events 中描述,節(jié)點(diǎn)使用 'addEventListener' 和 'removeEventListener' 方法綁定和解綁事件監(jiān)聽器,但 IE6 IE7 IE8 不支持這兩個(gè)方法, 而使用 'attachEvent' 和 'detachEvent' 方法作為替代方案,Opera 兩類方法都支持。Chrome Safari Firefox 只支持標(biāo)準(zhǔn)方法。

為了解決瀏覽器兼容問題,可以自定義函數(shù)來解決。例如:
代碼如下:
var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
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;
}
}
};


關(guān)于 'addEventListener' 和 'attachEvent' 有幾點(diǎn)需要注意:

IE 不支持在捕獲階段觸發(fā)事件監(jiān)聽器,'attachEvent' 方法沒有提供參數(shù)說明是否響應(yīng)在捕獲階段觸發(fā)的事件;
'addEventListener' 和 'attachEvent' 都可以注冊(cè)多個(gè)事件監(jiān)聽器;
在 Firefox Chrome Safari Opera 中給同一事件注冊(cè)同一個(gè)事件監(jiān)聽器多次,重復(fù)注冊(cè)的會(huì)被丟棄;而在 IE 中重復(fù)注冊(cè)的事件監(jiān)聽器會(huì)被重復(fù)執(zhí)行多次;
當(dāng)給同一元素注冊(cè)了多個(gè)事件監(jiān)聽器的時(shí)候,IE6 IE7 的事件監(jiān)聽器執(zhí)行順序是隨機(jī)的,IE8 是倒序的,F(xiàn)irefox Chrome Safari Opera 是順序的;
當(dāng)元素注冊(cè)的事件監(jiān)聽器中有非法的事件監(jiān)聽器時(shí)(非函數(shù)),在 IE Firefox 中會(huì)拋出異常,而在 Chrome Safari Opera 中則會(huì)忽略非法的事件監(jiān)聽器,繼續(xù)執(zhí)行其他的事件監(jiān)聽器。
事件對(duì)象
在ie中,事件對(duì)象是作為一個(gè)全局變量來保存和維護(hù)的。 所有的瀏覽器事件,不管是用戶觸發(fā)的,還是其他事件, 都會(huì)更新window.event 對(duì)象。 所以在代碼中,只要輕松調(diào)用 window.event 就可以輕松獲取 事件對(duì)象, 再 event.srcElement 就可以取得觸發(fā)事件的元素進(jìn)行進(jìn)一步處理。

對(duì)于標(biāo)準(zhǔn)的 DOM 處理來說, 事件對(duì)象卻不是全局對(duì)象,一般情況下,是現(xiàn)場(chǎng)發(fā)生,現(xiàn)場(chǎng)使用,把事件對(duì)象自動(dòng)傳遞給對(duì)應(yīng)的事件處理函數(shù)。 在代碼中,函數(shù)的第一個(gè)參數(shù)就是事件對(duì)象了。

為了解決兼容性問題,通常在代碼中如下處理:
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 临湘市| 克山县| 辛集市| 环江| 芦溪县| 师宗县| 尖扎县| 沂南县| 河间市| 宜阳县| 廉江市| 贵溪市| 兴安县| 阿鲁科尔沁旗| 左云县| 土默特右旗| 宣汉县| 湘阴县| 井陉县| 南城县| 辛集市| 林甸县| 贡嘎县| 樟树市| 元江| 高淳县| 新乡市| 英山县| 长顺县| 马边| 陇南市| 安国市| 扎赉特旗| 龙口市| 太和县| 新乐市| 招远市| 鲁山县| 商河县| 闸北区| 金寨县|