JS事件之自建函式bind 與相容性問題解決

2022-03-25 00:28:45 字數 1038 閱讀 5383

1、物件.事件 = 函式;

它只能同時為乙個物件的乙個事件繫結乙個響應函式

不能繫結多個,如果有多個,後面的會覆蓋前面的

2、addeventlistener()

此方法也可以為元素繫結響應函式

引數:● 事件的字串(不帶on)

● **函式,事件觸發時執行

● 是否在捕獲階段觸發事件,一般都傳false

使用此方法可以為乙個元素的同一事件繫結多個響應函式

當事件觸發時,按繫結順序依次執行

3、attachevent()

ie8及以下瀏覽器不支援addeventlistener()方法,但可以使用attachevent()方法起到同樣的效果

● 引數:

事件字串(帶on)

● **函式

此方法也可以繫結多個函式,不過函式執行順序與addeventlistener()相反

4、this問題與解決

addeventlistener()中的this是繫結事件的物件

attachevent()中的this是window

如果要解決相容性問題則需要統一兩個方法的this

這裡我們用到了call()方法

call()可以用來改變函式的this

自建函式bind()

自己定義乙個函式用來給乙個物件繫結事件

● 思路

三個引數:物件,事件,**函式

● 相容性:

通過if判斷物件是否存在addeventlistener方法來區分瀏覽器

● this問題的解決

由於傳入的**函式是瀏覽器呼叫的,我們無法去操作,所以我們在attachevent()不直接傳入**函式,而是先定義乙個匿名函式,然後在函式內部呼叫**函式,並利用call方法改變this

1

2337

38btn1

3940

JS函式與事件

一 使用js製作簡單計算器 1.在body裡面先建立計算器頁面。第乙個運算元框 第二個運算元框 加減乘除按鈕的設定 計算結果的顯示 2.編寫函式語句 編寫加法計算函式語句 document.getelementbyid result value n1 n2 將n1和n2的值相加給result這個控制...

js中call,apply與bind三函式

func.call thisvalue,arg1,arg2,第乙個引數就是this所要指向的那個物件,後面的引數則是函式呼叫時所需要的引數 例 function add a,b add.call this,1,2 call方法的乙個應用是呼叫物件的原生方法 var obj obj.hasownpro...

JS函式與事件補充

一 ji宣告函式方式 方式一 function 函式名 引數 方式二 var 函式名 function 引數 二 事件方式 方式一 通過標籤的事件屬性 如 方式二 給元素派發事件 document.getelementbyid id值 nclick function 引數 document.gete...