This question already has answers here:
JavaScript closure inside loops – simple practical example

(44个答案)


3年前关闭。




我有一个名为print的数组,正在尝试为每个具有打印值ID的按钮获取单独的click事件。与其余的按钮不同,只有我的最后一个按钮似乎可以正常工作,并且我浏览了在线示例并知道这是一个关闭问题。感谢帮助。谢谢

for(var i = 0; i < print.length; i++){
            var printer = print[i];
            // Watch this:
           $(document).ready(function(){$('#'+printer).click((function(value) {
                return function() {
                     alert(value);
                };
            })(printer));
        });
    }

最佳答案

$(document).ready(function(){
    for(var i = 0; i < print.length; i++){
            var printer = print[i];
            // Watch this:
           $('#'+printer).click((function(value) {
                return function() {
                     alert(value);
                };
            })(printer));

    }
})


您的语法很麻烦。您的关闭非常完美,但是文档仅准备一次。

Example

09-25 21:34