在 addEventListener 中传递函数中的变量 [重复]

Posted

技术标签:

【中文标题】在 addEventListener 中传递函数中的变量 [重复]【英文标题】:Pass a Variable in Function in an addEventListener [duplicate] 【发布时间】:2018-12-14 17:39:03 【问题描述】:

如何在函数previewImages 上传递一个变量?

document.querySelector('#file-input0').addEventListener("change", previewImages,false);
document.querySelector('#file-input1').addEventListener("change", previewImages,false);

我希望这个脚本调用函数:

function previewImages(i)
        var preview = document.getElementById("preview"+i);
        if (this.files) 
          [].forEach.call(this.files, readAndPreview);
        

每次我尝试这个时,我都无法传递变量值。我想用纯 javascript 实现这个。

【问题讨论】:

你的意思是把变量值传递给document.querySelector...吗? 没有。我的意思是像在 document.querySelector... 中设置一个变量并将其传递给函数 previewImages() 【参考方案1】:

您可以直接将函数声明为处理程序,并从其内部调用函数previewImages

document.querySelector('#file-input0').addEventListener("change", function() 
  previewImages(0);
, false);

document.querySelector('#file-input1').addEventListener("change", function() 
  previewImages(1);
, false);

【讨论】:

@ErlV 你能解释一下,为什么这不起作用? 它工作。我尝试在警报中显示该值,它确实传递了该值。非常感谢。

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

参数未在IE11上的addEventListener上传递

传递参数而不调用函数

JS----addEventListener()

在Eventlistener中将元素传递给回调

addEventListener 没有在 Javascript 中触发我的函数

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