色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

用JavaScript事件串連執行多個處理過程的方法

最近用到JavaScript 事件處理機制,找了些資料。
以前寫 JavaScript 程序時,事件都是采用 
復制代碼 代碼如下:
object.event = handler;

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

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

注意:attachEvent 所指派的多個過程的執行順序是隨機的,所以這幾個過程之間不要有順序依賴。另外 attachEvent 和 addEventListener 不僅僅適用于 window 對象,其他的一些對象也支持該方法。
復制代碼 代碼如下:
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; 
 } 

JavaScript技術用JavaScript事件串連執行多個處理過程的方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 荣昌县| 蚌埠市| 城固县| 时尚| 正定县| 东兰县| 鄂尔多斯市| 奉节县| 黑河市| 墨江| 福泉市| 东台市| 济阳县| 延川县| 乌拉特前旗| 通州区| 六安市| 东阳市| 夏津县| 哈巴河县| 德庆县| 威信县| 丹巴县| 蕉岭县| 阿荣旗| 斗六市| 玛纳斯县| 辰溪县| 合肥市| 陕西省| 盐城市| 芦山县| 伊宁市| 广州市| 辽中县| 乐清市| 鹿邑县| 从化市| 芒康县| 志丹县| 日喀则市|