0

2 つの異なるイベントで使用する必要がある関数が 1 つありますが、機能させることができません。どこで間違いを犯していますか?または、代わりにクラスを使用する必要がありますか?

coment_error = (that) ->
  $this = $(that)
  $new_answer = $this.parent('.new_answer')

  $new_answer.on('ajax:success',((evt, data, status, xhr)->
    $new_answer.hide()
    $('.open').show()
  ))

  $new_answer.on('ajax:error',((evt, data, status, xhr)->
    $(this).addClass("error")

    ))

$(document).on("click", ".new_answer > INPUT[type='submit']", coment_error($(this)))
$(document).on("click", ".new_comment > INPUT[type='submit']", coment_error($(this)))
4

1 に答える 1

2

問題は、イベントが呼び出されたときではなく、最後の 2 行が関数をすぐに実行することだと思います。

$(document).on("click", ".new_answer > INPUT[type='submit']", coment_error)

また、「this」はクリックされた要素に自動的にバインドされるため、coment_error が「that」を受け取ることは望ましくありません。したがって、$this = $(this) まですぐに取得できます。

于 2013-10-09T19:08:54.183 に答える