一次使用.addEventListener为数组的所有值

时间:2014-06-03 14:04:39

标签: javascript arrays html5 loops addeventlistener

我正在尝试在带有数组的循环中使用.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();
    });
}
如果我是个白痴和/或遗漏了一些明显的东西,请提前道歉。

1 个答案:

答案 0 :(得分:0)

尝试使用此代码

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:我不是封闭的忍者,所以如果它不起作用。道歉