javascript 如何将一些参数传递给 addEventListener 中调用的函数?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13570770/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-26 19:10:50  来源:igfitidea点击:

How to pass some parameters to function called in addEventListener?

javascript

提问by lwiii

Possible Duplicate:
How to pass arguments to addEventListener listener function?

可能的重复:
如何将参数传递给 addEventListener 侦听器函数?

How can I pass some argument (in this case an integer) to a function through addEventListeneron a clickevent?

我如何通过传递一些参数(在这种情况下一个整数)传递给函数addEventListener在一个click事件?

I have two buttons; if I press the right one I want to do some stuff, if I press the left one then I'd like it to do something else.

我有两个按钮;如果我按右边的我想做一些事情,如果我按左边的那么我希望它做别的事情。

Here's the code:

这是代码:

document.getElementById('date_right').addEventListener( 'click', switch_date(1), false );
document.getElementById('date_left').addEventListener( 'click', switch_date(-1), false );
  function switch_date( k )
  {
    if(k==1)
    {
      //do stuff
    }
  else
  {
    //another stuff
  }
}

回答by Matt Ball

You don't. Use anonymous functions:

你没有。使用匿名函数:

document.getElementById('date_right').addEventListener('click', function () {
    switch_date(1);
}, false);
document.getElementById('date_left').addEventListener('click', function () {
    switch_date(-1);
}, false);

Or use named functions which do not take arguments:

或者使用不带参数的命名函数:

function onRightDateClick() {
    switch_date(1);
}

function onLeftDateClick() {
    switch_date(-1);
}

document.getElementById('date_right').addEventListener('click', onRightDateClick, false);
document.getElementById('date_left').addEventListener('click', onLeftDateClick, false);