在事件侦听器函数中传递参数 [重复]

Posted

技术标签:

【中文标题】在事件侦听器函数中传递参数 [重复]【英文标题】:Pass Argument In Event Listener Function [duplicate] 【发布时间】:2014-10-15 13:51:37 【问题描述】:

我想将参数传递给在事件侦听器内部调用的函数。下面的代码显示了我想要做的事情,但它并没有让我按照惯例去做。有什么解决方法?

html 代码:

<button id='btn'>Click Me</button>

javascript 代码:

<script>
document.getElementById('btn').addEventListener( "click",btnClick(5) );
function btnClick(argument)

console.log("Button clicked with argument : " + argument);

</script>

控制台应该是:

Button clicked with argument : 5

谢谢大家。

【问题讨论】:

【参考方案1】:

使用匿名函数

document.getElementById('btn').addEventListener( "click", function() 
    btnClick(5);
, false );

如果您需要保留this 的值,您可以使用 call 或 apply

btnClick.call(this, 5);

【讨论】:

你为什么一直回答这些问题? ;) ***.com/q/23548403/218196, ***.com/q/23005695/218196 @FelixKling - 是的,我注意到了这个骗局。我不知道,我有时只是不假思索地回答,有时我会立即记住一个欺骗和标签等。取决于! @FelixKling - 也许我可以责怪痴呆症?

以上是关于在事件侦听器函数中传递参数 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用箭头函数在更改事件上传递参数“this”[重复]

Laravel 5.8:传递给事件侦听器的参数变为空

如何将参数传递给 flex/actionscript 中的事件侦听器函数?

Javascript未知数量的参数

在函数中传递多个html元素作为参数[重复]

如何在我的 evenlistener 上传递一个参数而不在页面加载时触发该函数? [复制]