我有一个奇怪的行为,在同一个文件中,更改事件正在运行,但点击事件不是。我知道我可能没有发布足够的代码,但我只想知道是否有人知道为什么事件可能会起作用但另一个不会。这是我的代码:
class AddBTS
constructor: () ->
$('#a').on 'change', (evt) => @a evt
$('#b').on 'change', (evt) => @b evt
$('#c').on 'click', (evt) => @c
a: (evt) =>
console.log 'a works'
b: (evt) =>
console.log 'b works'
c: () =>
console.log 'c works'
它引用的html:
<input type="file" id="a">
<input type="file" id="b">
<button id="c">OK</button>
事件在a和b上正常工作,但click事件对c不起作用。
我的编译JS在DOM加载后执行。
任何人都可以给我一些关于可能导致这种情况的指示,我会尝试一下。
有趣的是,当我双击c时,我收到以下错误:
Error in event handler for 'undefined': IndexSizeError: DOM Exception 1 Error: Index or size was negative, or greater than the allowed value.
答案 0 :(得分:3)
你必须调用你的c函数:
@c()
没有parens,你只能访问它。请记住,CoffeeScript不是Ruby;)。
答案 1 :(得分:0)
我不认为您需要evt
,因为您没有使用它。
$('#c').on 'click', () => @c