2013-12-18 93 views
0
# coffeescript 
$ -> 
    $('#new_comment').on 'ajax:success', (event, html) -> 
    $('#comments').append(html) 

# comments_controller.rb 
def create 
    @post = Post.find(params[:post_id]) 
    @comment = @post.comments.build(@captcha.values) 

    if @captcha.valid? && @comment.save 
    render @comment, layout: false 
    else 
    render partial: 'form', layout: false, status: 400 
    end 
end 

# _comment.html.haml 
%h3= @comment.name 
%p= @comment.text 

在網絡檢查器(Chrome),我看到呼叫發送到服務器並響應被正確地發回,但由於某些原因,JavaScript事件從未被觸發。咖啡腳本文件正在包含在application.js中,並且我已驗證它正在正確加載。我究竟做錯了什麼?軌道4沒有觸發AJAX回調

+0

也在使用jQuery軌發送Ajax請求:-)?如果沒有,這將解釋爲什麼jQuery全局ajax事件沒有被觸發。 –

回答

0

謝謝大家的答案,但我怕我的愚蠢是這個問題的原因。因爲我通過AJAX加載表單,並且在加載主頁面時發生處理程序綁定,所以沒有#new_comment表單來綁定處理程序。

通過簡單地添加的CoffeeScript到AJAX形成一切都解決了

0

試圖通過對#new_commentcoffeescript附上ajax:success事件到document

$ -> 
    $(document).on('ajax:success', '#new_comment', (event, html) -> 
    $('#comments').append(html)