加载页面后,Coffeescript函数就会运行,但我不希望它这样做

时间:2014-05-17 16:58:06

标签: ruby-on-rails coffeescript snap.svg

所以我有这个功能

$ ->
  paper = Snap("#svg")
  circ = paper.circle(100, 100, 50)
  circ.click(-> circ.animate({r: 200}, 1000))

使用Snap.svg库。它在页面上选择一个svg元素并在那里绘制一个圆圈。单击圆时,半径会增加。

如果我想撤出circ.click()内的功能,我无法让它正常工作。要么像这样

$ ->
  foo = (circle) ->
    circ.animate

  paper = Snap("#svg")
  circ = paper.circle(100, 100, 50)
  circ.click(foo(circ))

或者像这样

foo = (circ) ->
  circ.animate

$ ->
  paper = Snap("#svg")
  circ = paper.circle(100, 100, 50)
  circ.click(foo(circ))

当页面加载后,foo()会立即运行,但我想要它做的就是等到我点击圈子。

2 个答案:

答案 0 :(得分:1)

试试这个。 circ.click(-> foo(circ))

答案 1 :(得分:-2)

每个JavaScript文件在加载后立即运行。在原始代码中:

$ ->
  ...

$是一个方法,它会立即执行,并将以下匿名函数作为参数传递。