Javascript 如何在coffeescript循环中捕获异步函数的变量?
我正在一个对象上循环,并尝试为对象中每个项目对应的每个按钮添加一个Javascript 如何在coffeescript循环中捕获异步函数的变量?,javascript,loops,coffeescript,Javascript,Loops,Coffeescript,我正在一个对象上循环,并尝试为对象中每个项目对应的每个按钮添加一个onclick事件 for id of obj button = $("#my_button"+ id) button.click(-> console.log id) 使用此循环,每个按钮记录循环的最后一个id。如何让每个按钮记录正确的对应id?这是一个典型的JavaScript问题。标准解决方案是将每个循环迭代封装在一个匿名函数中,并将id传递给该函数;这样,传递给单击的函数将看到特定的id实例 C
onclick
事件
for id of obj
button = $("#my_button"+ id)
button.click(-> console.log id)
使用此循环,每个按钮记录循环的最后一个id。如何让每个按钮记录正确的对应id?这是一个典型的JavaScript问题。标准解决方案是将每个循环迭代封装在一个匿名函数中,并将
id
传递给该函数;这样,传递给单击的函数将看到特定的id
实例
CoffeeScript为此提供了一个很好的语法:do(id)->…
编译为(函数(id){…})(id)
。那么,作为你的例子,你会写
for id of obj
do (id) ->
button = $("#my_button"+ id)
button.click(-> console.log id)
我在文章中谈到了do