带有参数的JavaScript addEventListener函数[重复]

Posted

技术标签:

【中文标题】带有参数的JavaScript addEventListener函数[重复]【英文标题】:JavaScript addEventListener function with parameters [duplicate] 【发布时间】:2021-01-27 23:19:19 【问题描述】:

我想知道是否有办法将带参数的函数传递给 JS addEventListener

我尝试过直接绑定一个带参数的函数到addEventListener,但是监听器不起作用并立即执行函数而没有触发事件。

document.getElementById("button1").addEventListener("click", test1("text I would like to pass"));

function test1(text) 
  console.log(text);
<button id="button1">Click Me</button>

如果绑定的函数不包含任何参数,监听器将工作:

document.getElementById("button1").addEventListener("click", test1);

function test1() 
  console.log("text I would like to pass");
<button id="button1">Click Me</button>

我也尝试过使用onclick 做同样的事情,但同样的情况发生了。那么,如何将带参数的函数绑定到addEventListener呢?

【问题讨论】:

.addEventListener("click", () => test("text i would like to pass")); .addEventListener("click", test.bind(null, "text i would like to pass")) 【参考方案1】:

您可以使用 () => 在此处调用您的函数 或 function() 在此处调用您的函数

document.getElementById("button1")
.addEventListener("click", () =>  test1("four"););

function test1(text) 
  console.log(text);
<button id="button1">Click Me</button>

【讨论】:

以上是关于带有参数的JavaScript addEventListener函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有实例创建参数的Javascript类

使用 JavaScript 或 jQuery 编写带有 GET 参数的链接的最佳方法是啥

使用带有 fallthrough 的开关来处理 Javascript 中的默认参数是个好主意吗?

Laravel:如何通过javascript加载带有动态参数的命名路由

Laravel - 使用 Javascript 调用带有所需参数的路由

Javascript - 带有可选参数作为对象的函数?