Lee*_*lla 3 javascript loops coffeescript
我循环遍历一个对象,并尝试为onclick对应于对象中每个项目的每个按钮添加一个事件.
for id of obj
button = $("#my_button"+ id)
button.click(-> console.log id)
Run Code Online (Sandbox Code Playgroud)
使用此循环,每个按钮都会记录循环的最后一个 id.如何让每个按钮记录正确的相应ID?
这是一个经典的JavaScript问题.标准解决方案是将每个循环迭代包装在一个匿名函数中,并传入id该函数; 这样,您传递给的函数click将看到该特定id实例.
CoffeeScript为此提供了一个很好的语法:do (id) -> ...编译为(function(id){ ... })(id).所以,对于你的例子,你要写
for id of obj
do (id) ->
button = $("#my_button"+ id)
button.click(-> console.log id)
Run Code Online (Sandbox Code Playgroud)
我do在文章A CoffeeScript Intervention中谈到.
| 归档时间: |
|
| 查看次数: |
973 次 |
| 最近记录: |