为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

湖上湖 2019-07-04 13:03:22
如何将参数传递给addEventListener侦听器函数?情况有点像-var someVar = some_other_function();someObj.addEventListener("click", function(){     some_function(someVar);}, false);问题是someVar对象的侦听器函数中不可见。addEventListener,它可能被当作一个新的变量来处理。
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

为什么不直接从事件的目标属性获取参数呢?

例子:

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是一种面向原型的语言,记住!


查看完整回答
反对 回复 2019-07-04
?
慕少森

TA贡献2019条经验 获得超9个赞

这个问题由来已久,但我想我可以用ES5的.BIND()为后人提供一个替代方案。*)

function some_func(otherFunc, ev) {
    // magic happens}someObj.addEventListener("click", some_func.bind(null, some_other_func), false);

请注意,您需要使用第一个Param作为传入BIND的参数(另一个函数)来设置侦听器函数,而第二个Param现在是事件(而不是原来的第一个)。


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 669 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信