Как я могу определить обработчики событий внутри цикла, используя переменную цикла? - PullRequest
1 голос
/ 19 октября 2011
for a in [1,2,3]
  $('body').click (x) =>
    alert a

Он предупреждает три раза, когда я щелкаю тело. Я хотел бы, чтобы это предупредило 1, 2 и 3.

1 Ответ

5 голосов
/ 19 октября 2011

Я облажался с синтаксисом в первый раз, но на этот раз все правильно:

Вам нужно создать замыкание вокруг функции и немедленно вызвать его (так же, как в Javascript). Coffeescript даже дает вам хороший синтаксис, чтобы сделать это для вас ... ключевое слово do:

for a in [1,2,3]
  do (a) ->
    $('body').click (x) =>
      alert a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...