我有这个小提琴: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>
答案 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();
)