0

我有奇怪的行为,在同一个文件中,更改事件正在工作,但点击事件却没有。我知道我可能没有发布足够的代码,但我只是想看看是否有人知道为什么 on event 可能有效但另一个不会。这是我的代码:

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.
4

2 回答 2

3

你必须调用你的 c 函数:

@c()

没有括号,您只能访问它。请记住,CoffeeScript 不是 Ruby ;)。

于 2013-03-18T21:34:35.740 回答
0

我认为您不需要它,evt因为您没有使用它。

$('#c').on 'click', () => @c
于 2013-03-18T21:21:10.623 回答