JS註冊事件

2021-04-20 07:55:23 字數 1211 閱讀 5901

使用onload事件往往在body標籤上註冊,使用:οnlοad=function_name();的方式 不過這種方式只能在ie上使用,若是再ff上,就失去了效果,導致頁面會有錯誤

解決這個問題可使用以下方法

if(window.addeventlistener)

else

if(window.attachevent)

function init()

這樣就分別在不同的瀏覽器上呼叫不同的事件註冊方法,註冊onload事件。

attachevent和addeventlistener不僅可有window物件來呼叫(這時就是想window物件註冊某個事件),也可以由其他物件呼叫

,如向按鈕註冊onclick事件,如下:

var btn_obj= document.getelementbyid("btn1"); 

btn_obj.attachevent("onclick",method1);

btn_obj.attachevent("onclick",method2);

btn_obj.attachevent("onclick",method3);

//執行順序為method3->method2->method1

//如果是ff,並不支援該方法

addeventlistener var btn_obj= document.getelementbyid("btn1");

btn_obj.addeventlistener("click",method1);

btn_obj.addeventlistener("click",method2);

btn_obj.addeventlistener("click",method3);

//執行順序為method1->method2->method3

//當然你也可以直接對某個視覺化元件設定某種屬性的值,仍用button為例

document.getelementbyid("btn").onclick = method1;

document.getelementbyid("btn").onclick = method2;

document.getelementbyid("btn").onclick = method3;

//如果這樣寫,那麼將會只有medhot3被執行

//這就是這種方法和上面註冊的方式之間的區別,

//不過一般不會有這麼多onclick發生,哈哈

JS高階 封裝註冊事件

相容性問題 1 ele.on事件型別 function 乙個元素ele註冊一種事件多次,會被替換成最後乙個,所以有侷限性 2 addeventlistener 事件型別,事件處理函式,usecapture 第三個引數預設是false,冒泡階段執行 3 attachevent 事件型別,事件處理函式 ...

註冊事件,反註冊事件,匿名事件

根據資料動態建立控制項及為控制項動態繫結事件 事件不只乙個,包括匿名方法 現在要訂閱乙個新事件同時取消這個控制項的所有事件.改用反射實現,用反射獲得button的eventhandler,並對它進行反註冊。方法一。propertyinfo propertyinfo typeof button get...

FLEX事件註冊

import mx.controls.alert import flash.events.mouseevent button 事件註冊 bt1.addeventlistener mouseevent.click,onc bt1.addeventlistener mouseevent.mouse mo...