我的rails项目中有ajaxified链接:
<%= link_to 'Click me!', some_url, remote: true %>
我添加了钩子来监听ajax事件:
$(function(){
$(document).ajaxSend( function(){$('#busy').show()} )
$(document).ajaxComplete( function(){$('#busy').hide()} )
})
这在FF中可以正常工作。
在Chrome中,当发送ajax请求时,#busy
div会按预期显示,但当请求到达时,Chrome会显示空白,并且控制台会显示一条长javascript错误消息:
jQuery.event.dispatch
elemData.handle.eventHandle
jQuery.event.trigger
(anonymous function)
jQuery.extend.each
jQuery.fn.jQuery.each
jQuery.fn.extend.trigger
... (several hundred lines of pretty much the same stuff)
为什么Chrome会对看似简单添加事件处理程序的事情进行抨击?
答案 0 :(得分:0)
我知道这不能直接回答你的问题,但是在这个页面上很好地捕获了处理ajax事件的rails方法:https://github.com/rails/jquery-ujs/wiki/ajax
这可能与事件向上传递的方式有关。
<%= link_to 'Click me!', some_url, remote: true, id: 'clickable' %>
$('#clickable').on('ajax:beforeSend', function(event, xhr, settings) {
$('#busy').show()
});
$('#clickable').on('ajax:complete', function(event, xhr, settings) {
$('#busy').hide()
});