首頁 >web前端 >js教程 >window.addEventListener來解決讓一個js事件執行多個函數_javascript技巧

window.addEventListener來解決讓一個js事件執行多個函數_javascript技巧

WBOY
WBOY原創
2016-05-16 17:45:181310瀏覽

可能你也碰到過這種情況,就是在js的程式碼中用了window.onload後,可能會影響到body中的onload事件。你可以全寫在body中,也可以全放到window.onload中,但是這樣並不是很方便,有時我們需要兩個同時用到。這時就要用window.attachEvent和window.addEventListener來解題。

下面是一個解決方法。至於attachEvent和addEventListener的用法,可以自己Google或百度一下。

複製程式碼 程式碼如下:

if (document.all){


if (document.all){
window. attachEvent('onload',函數名稱)//IE中
}
else{
window.addEventListener('load',函數名稱,false);//firefox
}


在近來的工作中,用到了attachEvent方法,該方法可以為某一事件附加其它的處理事件,有時候可能比較有用,這裡將其基本用法總結一下。
其語法可以查看《DHTML手冊》,裡面有詳細的說明,這裡貼一個例子,該例子來自互聯網: 複製程式碼

程式碼如下:


document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2; >document.getElementById("btn").onclick = method3;


如果這樣寫,那麼將會只有medhot3被執行
寫成這樣
複製程式碼

程式碼如下:


var btn1Obj = document.getElementBy(tn 🎜>//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method2);
b. ",method3);


執行順序為method3->method2->method1
如果是Mozilla系列,並不支援此方法,需要用到addEventListener 複製程式碼

程式碼如下:


var btn1Obj = document.getElementById("btn1"); element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
執行順序為method1->method2->method3
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn