文章目录

一、教程内容

在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;
                    }
                }
            });
        })


 


转载请注明出处http://www.bewindoweb.com/138.html | 三颗豆子
分享许可方式知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
重大发现:转载注明原文网址的同学刚买了彩票就中奖,刚写完代码就跑通,刚转身就遇到了真爱。
你可能还会喜欢
具体问题具体杠