如何在咖啡脚本中调用onclick上的2个函数

时间:2016-07-07 13:05:20

标签: coffeescript

我试图在coffeescript中单击一个按钮调用2个函数。但是我收到错误dialtone() is not a function

dialtone1 = ->
  audio = document.getElementById('dialtone1')
  if audio.paused
    audio.play()
  else
    audio.currentTime = 0
  return
alex.on Events.Click, (event, layer) -> timer() dialtone()

我该如何解决这个问题

1 个答案:

答案 0 :(得分:1)

你有两件事是错的:

  1. 没有dialtone函数,该函数名为dialtone1
  2. timer() dialtone()并没有按照您的想法行事。
  3. 当CoffeeScript看到timer() dialtone()时,它认为你的意思是

    timer()(dialtone())
    

    即。调用timer作为函数返回的函数,其中dialtone作为参数返回。

    修复函数名称中的拼写错误(在您定义它或您调用它的位置)并使用两个语句来调用函数:

    alex.on Events.Click, (event, layer) -> timer(); dialtone()
    # ---------------------------------------------^
    

    alex.on Events.Click, (event, layer) ->
      timer()
      dialtone()
    

    甚至:

    timer_and_dialtone = ->
      timer()
      dialtone()
    alex.on Events.Click, timer_and_dialtone