2013-10-09 37 views
0

我有一個函數應該在兩個不同的事件中使用,但我不能讓它工作。我在哪裏犯錯誤?或者我必須改用Class?如何在Coffeescript中共享函數? Rails

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

您可以請張貼您的HTML,因爲從單獨的代碼片段,很難分辨哪些不起作用。你確定你的jQuery選擇器是正確的嗎? –

+0

thx糾正...,davidfurber給了我正確的答案 – FastIndian

回答

2

我認爲問題是,最後兩行立即執行,而不是在事件被調用的函數。

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

你也不想coment_error領取「說」,因爲「這」將自動綁定到點擊的元素。所以你可以直接到$ this = $(this)。