複製鏈接
請複製以下鏈接發送給好友

addEventListener

鎖定
addEventListener是一個偵聽事件並處理相應的函數
外文名
addEventListener
定    義
一個偵聽事件並處理相應的函數
例    子
添加監聽事件
注意事項
首先調用 removeListener

目錄

addEventListener原型

public override function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void

addEventListener釋義

1、type:String
事件的類型。
2、listener:Function
偵聽到事件後處理事件的函數。 此函數必須接受 Event 對象作為其唯一的參數,並且不能返回任何結果,如以下示例所示: 訪問修飾符function 函數名(evt:Event):void
3、useCapture:Boolean (default = false)
這裏牽扯到“事件流”的概念。偵聽器在偵聽時有三個階段:捕獲階段、目標階段和冒泡階段。順序為:捕獲階段(根節點到子節點檢查是否調用了監聽函數)→目標階段(目標本身)→冒泡階段(目標本身到根節點)。此處的參數確定偵聽器是運行於捕獲階段、目標階段還是冒泡階段。 如果將 useCapture 設置為 true,則偵聽器只在捕獲階段處理事件,而不在目標或冒泡階段處理事件。 如果useCapture 為 false,則偵聽器只在目標或冒泡階段處理事件。 要在所有三個階段都偵聽事件,請調用兩次 addEventListener,一次將 useCapture 設置為 true,第二次再將useCapture 設置為 false。
4、priority:int (default = 0)
事件偵聽器的優先級。 優先級由一個帶符號的 32 位整數指定。 數字越大,優先級越高。 優先級為 n 的所有偵聽器會在優先級為 n -1 的偵聽器之前得到處理。 如果兩個或更多個偵聽器共享相同的優先級,則按照它們的添加順序進行處理。 默認優先級為 0。
5、useWeakReference:Boolean (default = false)
確定對偵聽器的引用是強引用,還是弱引用。 強引用(默認值)可防止您的偵聽器被當作垃圾回收。 弱引用則沒有此作用。

addEventListener注意

使用EventDispatcher對象註冊事件偵聽器對象,以使偵聽器能夠接收事件通知。 可以為特定類型的事件、階段和優先級在顯示列表的所有節點上註冊事件偵聽器。
成功註冊一個事件偵聽器後,無法通過額外調用addEventListener()來更改其優先級。要更改偵聽器的優先級,必須首先調用 removeListener()。 然後,可以使用新的優先級再次註冊該偵聽器。

addEventListener例子

添加監聽事件
function Go()
{
//...
}
document.getElementById("testButton").addEventListener("click", Go, false);
或者 listener 直接就是函數
document.getElementById("testButton").addEventListener("click", function () { ... }, false);
刪除監聽事件
document.getElementById("testButton").removeEventListener("click", Go [1]  );

addEventListener參數

很多時候我們不但需要動態添加事件, 也需要將此事件的回調函數增加一些參數,來滿足我們的需求,而自帶的
addEventListener方法 默認只有一個參數event事件類型,此類問題曾經困擾過我很長時間 .
diqye.html5.GpsDir.prototype._addClickEvent =function(_element,
callBack, //回調函數
//多出來的參數
gpsDir,
id) {
var eventCallBack = callBack;
//********************************************************
eventCallBack = function(event) {
//console.log("enter method [eventCallBack] ");
callBack(gpsDir,id);//這裏就可以傳自定義的參數了
}
//********************************************************
if(_element.addEventListener){
_element.addEventListener("click", eventCallBack);
}else if(_element.attchEvent) {
_element.attchEvent("onclick", eventCallBack);
}else if(_element.click) {
_element.click = eventCallBack;
}else{
throw "your browse not support this library";
}
}
詳細資料請參考這裏 [2] 
參考資料