如何在Coffeescript中分享功能?轨道

时间:2013-10-09 19:00:10

标签: ruby-on-rails function coffeescript

我有一个功能应该在两个不同的事件中使用,但我不能使它工作。我哪里弄错了?或者我是否必须使用Class?

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)))

1 个答案:

答案 0 :(得分:2)

我认为问题是最后两行是立即执行函数而不是在调用事件时。

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

此外,您不希望coment_error接收“that”,因为“this”将自动绑定到单击的元素。所以你可以直接到$ this = $(this)。