如何将参数传递给addEventListener侦听器函数?

如何将参数传递给addEventListener侦听器函数?

情况有点像-

var someVar = some_other_function();someObj.addEventListener("click", function(){
    some_function(someVar);}, false);

问题是someVar对象的侦听器函数中不可见。addEventListener,它可能被当作一个新的变量来处理。


湖上湖
浏览 670回答 3
3回答

慕码人2483693

为什么不直接从事件的目标属性获取参数呢?例子:var someInput = document.querySelector('input');someInput.addEventListener('click', myFunc, false); someInput.myParam = 'This is my parameter';function myFunc(evt){   window.alert( evt.target.myParam );}JavaScript是一种面向原型的语言,记住!

慕少森

这个问题由来已久,但我想我可以用ES5的.BIND()为后人提供一个替代方案。*)function some_func(otherFunc, ev) {     // magic happens}someObj.addEventListener("click", some_func.bind(null, some_other_func), false);请注意,您需要使用第一个Param作为传入BIND的参数(另一个函数)来设置侦听器函数,而第二个Param现在是事件(而不是原来的第一个)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript