2013-12-18 174 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)