从点击绑定调用方法

时间:2014-09-26 16:10:11

标签: javascript jquery events coffeescript

我有这个小提琴:http://jsfiddle.net/jj258ykp/2/

使用BTN2和BTN3我点击时看到警报,我没有在BTN1上看到警报,我想看到它。

这是coffeescript:

class A

    method: -> 
        alert "method"

    method2: -> 
        alert "method2"

    @method3: -> 
        alert "method3"

    setup: -> 
        $('button#btn').click( (event) -> 
          @method()
        )
        $('button#btn3').click( (event) -> 
          A.method3()
        )



$ ->
    a = new A
    a.setup()

    $('button#btn2').click( (event) -> 
          a.method2()
        )

这是我的HTML:

<button id = "btn">BTN1</button>
<button id = "btn2">BTN2</button>
<button id = "btn3">BTN3</button>

1 个答案:

答案 0 :(得分:1)

您尝试引用this.method()(coffeescript中的@表示this)。

由于调用在单击处理程序的范围内,this.method不存在。您需要通过实例化A或将method设为method3之类的成员变量来访问它:

  setup: -> 
    $('button#btn').click( (event) -> 
      new A().method();
    )

或者:

A
  @method: -> 
    alert "method"

  setup: -> 
    $('button#btn').click( (event) -> 
      A.method();
    )