我有一个缩略图网格,您可以在其中单击每个缩略图,并显示警报。但是,单击缩略图1后,将显示缩略图1的警报,然后显示缩略图2,然后显示缩略图3,依此类推。

我不确定发生了什么,并尝试关闭没有效果。

function addThumbnails(data) {
    var $thumbnailList = $('.thumbnail-list');

    for (let i = 0, len = data.length; i < len; i++) {
        let elementString = createImageElementString(data[i][0]);
        $thumbnailList.append(elementString).on('click', 'a', function() {
            alert('Thumbnail ' + i); //Issue
        });
    }
}

最佳答案

我不知道我们可以将单击处理程序追加到虚拟jquery节点对象。

function addThumbnails(data) {
    for (let i = 0, len = data.length; i < len; i++) {
        let $elementString = $(createImageElementString(data[i][0]));
        $elementString.on('click', function() {
            alert(i);
        });
        $('.thumbnail-list').append($elementString);
    }
}

关于javascript - jQuery单击处理程序在for循环中分配后多次触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43289576/

10-12 16:26