Click()闭包的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)); }); } 

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

你的语法很棘手。 你的关闭是完美的,但文件只准备一次。

一个更jQuery-ish解决方案

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