我见过一些同事在rails中使用它
$('[data-once=true]').live('ajax:before', function(request, e) {
});
但是我试图将它与jquery一起使用并且它不起作用,这个事件是否带有rails jquery适配器?
答案 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()
处理的有用事件,除非您已定义具有该名称的自定义事件。