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

首頁 > 開發(fā) > JS > 正文

用JavaScript事件串連執(zhí)行多個(gè)處理過程的方法

2024-09-06 12:43:05
字體:
供稿:網(wǎng)友
最近用到JavaScript 事件處理機(jī)制,找了些資料。
以前寫 JavaScript 程序時(shí),事件都是采用 
代碼如下:
object.event = handler;

的方式初始化。這種方式對(duì)于 Internet Explorer、Mozilla/Firefox 和 Opera 來說很通用。但是有一個(gè)問題就是,這種方式只能一個(gè)事件對(duì)應(yīng)一個(gè)事件處理過程。如果希望一個(gè)事件可以依次執(zhí)行多個(gè)處理過程就不好用了。
但是 Internet Explorer 從 5.0 開始提供了一個(gè) attachEvent 方法,使用這個(gè)方法,就可以給一個(gè)事件指派多個(gè)處理過程了。attachEvent 對(duì)于目前的 Opera 也適用。但是問題是 Mozilla/Firefox 并不支持這個(gè)方法。但是它支持另一個(gè) addEventListener 方法,這個(gè)方法跟 attachEvent 差不多,也是用來給一個(gè)事件指派多個(gè)處理過程的。但是它們指派的事件有些區(qū)別,在 attachEvent 方法中,事件是以 “on” 開頭的,而在 addEventListener 中,事件沒有開頭的 “on”,另外 addEventListener 還有第三個(gè)參數(shù),一般這個(gè)參數(shù)指定為 false 就可以了。
因此要想在你的程序中給一個(gè)事件指派多個(gè)處理過程的話,只要首先判斷一下瀏覽器,然后根據(jù)不同的瀏覽器,選擇使用 attachEvent 還是 addEventListener 就可以了。實(shí)例如下:
代碼如下:
if (document.all) { 
    window.attachEvent('onload', handler1); 
    window.attachEvent('onload', handler2); 

else { 
    window.addEventListener('load', handler1, false); 
    window.addEventListener('load', handler2, false); 

注意:attachEvent 所指派的多個(gè)過程的執(zhí)行順序是隨機(jī)的,所以這幾個(gè)過程之間不要有順序依賴。另外 attachEvent 和 addEventListener 不僅僅適用于 window 對(duì)象,其他的一些對(duì)象也支持該方法。
代碼如下:
function addEvent(obj, evenTypeName, fn){ 
 if (obj.addEventListener){ 
    obj.addEventListener(evenTypeName, fn, true); 
    return true; 
 } else if (obj.attachEvent){ 
    return obj.attachEvent("on"+evenTypeName, fn); 
 } else { 
    return false; 
 } 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临漳县| 临清市| 孝昌县| 阳江市| 河东区| 攀枝花市| 那曲县| 抚州市| 丁青县| 图们市| 油尖旺区| 吉隆县| 乌审旗| 中西区| 浮梁县| 黄浦区| 武隆县| 新密市| 襄垣县| 青海省| 永胜县| 尚志市| 齐河县| 中卫市| 龙南县| 绩溪县| 钦州市| 嘉义县| 伊吾县| 勐海县| 甘德县| 卓资县| 同心县| 长沙市| 红原县| 盐津县| 元朗区| 杭锦后旗| 东阳市| 小金县| 岳阳县|