Click()闭包的Jquery循环

时间:2011-10-31 19:23:24

标签: jquery

我有一个名为print的数组,我正在尝试为每个具有打印值id的按钮获取单独的单击事件。只有我的最后一个按钮似乎与其他按钮不同,我查看了在线示例并知道这是一个闭包问题。感谢帮助。谢谢

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));
        });
    }   

2 个答案:

答案 0 :(得分:4)

$(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

答案 1 :(得分:1)

更多jQuery-ish解决方案

$(document).ready(function(){
    for(var i = 0; i < print.length; i++){
        var printer = print[i];

        $('#' + printer).click(function() {
            alert($(this).text());
        });
    }
});