教程内容
在Jquery使用ajax更新数据的过程中,禁用a标签
具体操作
ajax判断的是整个类的标签被点击时:
js
$('.xxxxxx').click(function(){
....
}尝试过的方法
- 增加一个效果一模一样的类,取名为xxxxx-live,在load function中移除xxxxx增加xxxxx-live,这样保持CSS效果的同时,不会触发xxxxx的点击事件。
结果:失败,仍然触发了,没有再去研究。
- 利用$('#xx').removeAttr('onclick')移除click事件,就不会触发了。
结果:不好,如果超时之类的出现了错误,移除后无法再添加(没研究如何添加)。
- 添加disabled属性,$('#xx').attr('disabled',"true");
结果:失败,只对button有效,对a标签无效。
- 禁用鼠标一段时间,不准点击网页。
结果:不好,体验很难受。
- 采用一个遮挡蒙板,当点击后就遮挡住按钮,防止过程中点击。
结果:没尝试,要写很多东西,比较懒不想写……
最终采用的方法
添加全局标志变量flag,当加载时flag设置为false禁止进入ajax,success或者error时设置为true,其实就是一把锁。
js
var flag = true;
$(function(){
$('.xxxxxxxxx').click(function(){
if(flag) {
flag = false;
event.stopPropagation();//防止冒泡
……
$.ajax({
……
})
function LoadFunction() {
……
}
function erryFunction(XMLHttpRequest, textStatus, errorThrown) {
……
flag=true;
}
function succFunction(tt) {
……
flag=true;
}
}
});
})


粤公网安备44030602007943号