javascript - 一次对数组的所有值使用 .addEventListener

标签 javascript arrays html 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();
    });
}

如果我是个白痴和/或遗漏了一些明显的东西,请提前道歉。

最佳答案

尝试使用此代码

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/

相关文章:

html - 高度百分比在 CSS 中不起作用

jquery - 在 bootstrap3 轮播中的移动 View 中显示一列

javascript - 从 gridview 超链接调用具有多个参数的 Javascript 函数

javascript - HTML Dropdown 的重定向(使用 JS)在移动设备上不起作用,但在 PC 上工作正常

javascript - 在 JavaFX 中访问 Javascript 的返回值

java - 将值存储在数组中未指定的索引处。什么更快?

Jquery UI 位置插件不适用于 margin 属性

javascript - 从外部函数调用 Image.getSize

java - 如何将数组中 n 个相似元素的下一个 n-1 个元素设为 0?

c++ - 用数组或指针引用函数?