2015-08-27 80 views
2

只是想繞到我前面在這個:我可以使用JavaScript bind()訪問事件信息嗎?

var _myFn = function(param1, param2) { 
    event.stopPropagation(); // this is what I want = read or affect click event information 
    // do stuff with context, param1 and param2 
}; 
element.addEventListener('click', _myFn.bind(context, param1, param2)); 

我還沒有讀到,bind()方法允許通過對點擊的事件信息。我知道我可以重寫我的處理程序邏輯,但有沒有辦法做到這一點呢?如果不是什麼將是一個優雅的方式來解決這個問題?

我需要一個ES5解決方案。

回答

5

的實際方法參數將遵循bind參數

參數時,預先準備時 調用目標函數提供到綁定函數參數。

var _myFn = function(param1, param2, e) { 
 
    e.stopPropagation(); 
 
    alert(e.target.tagName) 
 
} 
 
var param1 = 1, 
 
    param2 = 2; 
 
element.addEventListener('click', _myFn.bind(this, param1, param2));
<div id="element">Click me</div>

+0

確定的伎倆感謝那個一樣。我正在嘗試var _myFn = function(event,param1,param2){}這不起作用(如預期的那樣:/) –

相關問題