-
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);
刪除監聽事件
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";
}
}
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:18次歷史版本
- 最近更新: 泡沫之夏吹泡泡