如何使用循环变量在循环内定义事件处理程序?

发布于 2024-12-10 23:14:31 字数 125 浏览 0 评论 0原文

for a in [1,2,3]
  $('body').click (x) =>
    alert a

当我点击正文时,它会提醒 3 三次。我希望它能够提醒 1、2 和 3。

for a in [1,2,3]
  $('body').click (x) =>
    alert a

It alerts 3 three times when I click the body. I would like it to alert 1, 2, and 3.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嗳卜坏 2024-12-17 23:14:31

我第一次搞砸了语法,但这次做对了:

您需要围绕函数创建一个闭包并立即调用它(就像在 Javascript 中一样)。 Coffeescript 甚至为您提供了一个很好的语法来为您执行此操作... do 关键字:

for a in [1,2,3]
  do (a) ->
    $('body').click (x) =>
      alert a

I screwed up the syntax the first time, but got it right this time:

You need to create a closure around the function and call it immediately (much like you would in Javascript). Coffeescript even gives you a nice syntax to do that for you... the do keyword:

for a in [1,2,3]
  do (a) ->
    $('body').click (x) =>
      alert a
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文