ajax回调禁用a标签,Jquery使用ajax过程中禁止点a标签

一、教程内容

在Jquery使用ajax更新数据的过程中,禁用a标签

二、具体操作

ajax判断的是整个类的标签被点击时:$('.xxxxxx').click(function(){

....

}

首先记录我尝试过的东西:

1、增加一个效果一模一样的类,取名为xxxxx-live,在load function中移除xxxxx增加xxxxx-live,这样保持CSS效果的同时,不会触发xxxxx的点击事件。

结果:失败,仍然触发了,没有再去研究。

2、利用$('#xx').removeAttr('onclick')移除click事件,就不会触发了。

结果:不好,如果超时之类的出现了错误,移除后无法再添加(没研究如何添加)。

3、添加disabled属性,$('#xx').attr('disabled',"true");

结果:失败,只对button有效,对a标签无效。

4、禁用鼠标一段时间,不准点击网页。

结果:不好,体验很难受。

5、采用一个遮挡蒙板,当点击后就遮挡住按钮,防止过程中点击。

结果:没尝试,要写很多东西,比较懒不想写……

最终采用的方法:

添加全局标志变量flag,当加载时flag设置为false禁止进入ajax,success或者error时设置为true,其实就是一把锁。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;

}

}

});

})