2011-03-12 41 views
3

我已经定义,像这样下列远程的link_to标签:JQuery的阿贾克斯完全没有触发钢轨远程的link_to

=link_to "", {:action => "destroy", :id => user.id}, :remote => true, :method => :delete, :class => "delete-icon" 

这工作得很好,但我想钩到了jQuery 1.5.1 AJAX事件提供通知用户。我必须在下面定义的事件处理程序中,ajax:事件触发前,但其他人都没有。任何人都可以看到我做错了什么。我在safari上测试5

$(function(){ 
    $('.delete-icon').bind("ajax:before", //fires 
       function(){ 
       $('#progress').show(300); 
    }); 

    $('.delete-icon').bind('ajax:after', //does not fire 
     function(xhr, status, error) { 
      alert("complete!"); 
    }); 

}); 
+0

是您使用在该jQuery的UJS版本时间? – lulalala 2012-07-06 09:38:35

回答

2

您应该尝试绑定到“完成”而不是“ajax:after”。如果您只想在成功时注意,请尝试使用“成功”。

+0

我已经尝试过所有这些,唯一发生火灾的是ajax:之前。我很困扰。我相当确信,rails.js不会压倒他们。 – dagda1 2011-03-15 08:52:34

+0

我得到了和你一样的错误。只有ajax:beforeSend被调用,ajax:complete和ajax:成功,甚至ajax:错误未被调用。你解决了这个问题吗? – 2012-01-27 10:43:40

0

在你的情况我建议使用“完整”和你的函数必须接受4个参数

$('.delete-icon').bind('ajax:complete', //this will work 
    function(event, data, status, xhr) { //note parametes 
     alert("complete!"); 
}); 

您可能需要阅读这篇文章,了解更多信息Jquery-ujs and Jquery Trigger