- 修改某个用ruby on rails做的网站时,有个奇怪的现象,点击某个按钮加载到另一个页面时,页面加载完成后,“加载中”这个提示一直存在。看了后台代码,最终确定到ajaxStop这块。
- 原代码
$('#ajax-indicator').bind('ajaxSend', function(event, xhr, settings) {
if ($('.ajax-loading').length === 0 && settings.contentType != 'application/octet-stream') {
$('#ajax-indicator').show();
}
});
$('#ajax-indicator').bind('ajaxStop', function() {
$('#ajax-indicator').hide();
});
- 问题:网站用的jquery是1.9+,在这个版本后,ajax全局事件需绑定到document对象上,才能触发。
- 修改后代码
$('#document').bind('ajaxSend', function(event, xhr, settings) {
if ($('.ajax-loading').length === 0 && settings.contentType != 'application/octet-stream') {
$('#ajax-indicator').show();
}
});
$('#document').bind('ajaxStop', function() {
$('#ajax-indicator').hide();
});