0

同じファイル内で変更イベントが機能しているのにクリックイベントが機能していないという奇妙な動作があります。十分なコードを投稿していない可能性があることは理解していますが、イベントで機能する理由を誰かが知っているかどうかを確認したいのですが、別の人は機能しません。これが私のコードです:

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で正常に機能しますが、クリックイベントは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 に答える