jQuery ajax:在事件之前

时间:2011-01-01 02:07:30

标签: javascript ruby-on-rails ajax jquery

我见过一些同事在rails中使用它

    $('[data-once=true]').live('ajax:before', function(request, e) {

});

但是我试图将它与jquery一起使用并且它不起作用,这个事件是否带有rails jquery适配器?

3 个答案:

答案 0 :(得分:4)

是的,ajax:before是一个跟踪添加/触发器的jQuery事件,尽管在最新版本中它不是ajax:beforeSend。虽然在jQuery中(ajax:before在JS框架不可知变为rails之前就已存在),但您可以使用ajaxSend global event全局地附加到此,如下所示:

$(document).bind('ajaxSend', function(e, request, options) {
  $('[data-once=true]').something();
});

答案 1 :(得分:2)

我不是rails dev,所以我不确定rails是如何改变这个等式的,但这就是我之前在普通的'JS:

中将函数附加到AJAX的方法。
$.ajax({
   beforeSend: function(){

     alert("Before");

   },
   complete: function(){

    alert("after");

   }
 });

请注意,此后会针对所有AJAX请求触发这些事件。你基本上订阅了AJAX对象。

有关详细信息,请参阅jQuery AJAX Events Documentation

答案 2 :(得分:1)

'ajax:before'不是.live()处理的有用事件,除非您已定义具有该名称的自定义事件。