ajaxStop事件不执行

本文解决了一个使用Ruby on Rails构建的网站上的问题,在该网站中,点击按钮导航到新页面后,“加载中”的提示不会消失。问题根源在于jQuery版本1.9+对ajaxStop事件处理方式的变化,需要将事件绑定到document对象而非特定元素。
  • 修改某个用ruby on rails做的网站时,有个奇怪的现象,点击某个按钮加载到另一个页面时,页面加载完成后,“加载中”这个提示一直存在。看了后台代码,最终确定到ajaxStop这块。
  • 原代码
// #ajax-indicator 这种东西就是 “加载中”这个半透明的提示信息
$('#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对象上,才能触发。
  • 修改后代码
// #ajax-indicator 改为 #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();
});
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值