如何将一些参数传递给 addEventListener 中调用的函数? [复制]

Posted

技术标签:

【中文标题】如何将一些参数传递给 addEventListener 中调用的函数? [复制]【英文标题】:How to pass some parameters to function called in addEventListener? [duplicate] 【发布时间】:2012-11-14 06:42:15 【问题描述】:

可能重复:How to pass arguments to addEventListener listener function?

如何在 click 事件中通过 addEventListener 将一些参数(在本例中为整数)传递给函数?

我有两个按钮;如果我按右边,我想做一些事情,如果我按左边,我希望它做其他事情。

代码如下:

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
  

【问题讨论】:

【参考方案1】:

你没有。使用匿名函数:

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

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

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);

【讨论】:

以及如何删除这个 eventListener ?如果有匿名函数。 document.getElementById("myDIV").removeEventListener("mousemove", myFunction);

以上是关于如何将一些参数传递给 addEventListener 中调用的函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

将参数传递给 addEventListener AS3

如何将参数传递给 Java 线程?

Flutter BLoC - 如何将参数传递给事件?

如何通过原始指针将闭包作为参数传递给 C 函数?

如何将两个参数传递给 Pool.starmap()?

如何将参数传递给 setTimeout() 回调?