我正在尝试在带有数组的循环中使用 .addEventListener (如果可能的话),以便与同一网页上的多个音频播放器一起使用。音频播放器只是标准 HTML5 音频,但具有自定义控件。
这只是一些需要解释的测试代码:
array[0].addEventListener('click',function() {
array[0].play();
});
array[1].addEventListener('click',function() {
array[1].play();
});
我怎样才能压缩而不是为数组的每个值写出来?我已经尝试将其放入 (for) 循环中,但随后它似乎完全忽略了它:
For (i = 0; i < array.length; i++) {
array[i].addEventListener('click',function() {
array[i].play();
});
}
如果我是个白痴和/或遗漏了一些明显的东西,请提前道歉。
最佳答案
尝试使用此代码
for( var i=0; i<array.length; i++ )
{
(function(index) // keep i pointing to right index
{
array[index].addEventListener('click', function ()
{
array[index].play();
}, false);
})(i)
}
PS:我不是闭包忍者,所以如果它不起作用。抱歉
关于javascript - 一次对数组的所有值使用 .addEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24017289/