我正在尝试制作一个网站。我把的addEventListener更多的元素在函数调用多次:Javascript:我可以避免关闭吗?
idImag = 0;
function function1()
{
//do something
function2()
}
function function2()
{
//do something
document.getElementById("holder" + idImag).addEventListener('mouseover',function(){
idImag++;
alert('It works');
}
function3(event)
{
alert(3);
}
function1();
function1();
<div id="holder0">Dog</div>
<div id="holder1">Chicken</div>
<div id="holder2">Cow</div>
但有一个问题:只有最后一个元素得到事件侦听器......别人把鼠标在它以后什么也不做。 然后我google了一下,发现了关闭和变量如何保存,即使函数返回后...我不明白一切,但我只想了解如何将事件侦听器放在function2中。你可以帮我吗? 可能你注意到了:我是新手。对不起,如果问题很愚蠢或者没有意义。如果你需要更多的细节,我会把我的整个代码,但它有变量和罗马尼亚语的评论,所以我不知道你是否会理解它。对不起,我的英语不好,并提前谢谢你。
是的,你应该添加更多的代码。您当前的代码不会显示有关事件处理程序的任何问题。 –
代码似乎已被切断,你可以发布你在addEventListener调用中给出的事件处理函数吗? – nkassis
看起来应该可以工作。也许你需要'var idImag = 0;'顶部?不要说'var'应该只是指'window.idImg',所以你可以使用该引用,并确保'window.idImg'正在递增 –