js代码为什么会重复执行2次

为什么我的js会重复执行2次,比如data返回0的时候,会弹出2次提示,就是点确定后又弹出一次提示,还要再点一次确定,窗口才会消失。

    function topic(pay,id){
   var dia=$.dialog({
        title:'<center>提示</center>',
        select:0,
        content:'<center><p style="color:red;margin-top:5px;">支付'+pay+'积分</p></center>',
        button:["支付","取消"]
    });
    dia.on("dialog:action",function(e){
        if(e.index==1){
            return false;
        }
         var _tid=id;
   $.ajax({
        type:"POST",
        url:"URL",
        data:{id:_tid},
        datatype: "text",//"xml", "html", "script", "json", "jsonp", "text".
        success:function(data){
            data=$.trim(data);
            if(data==-2){
                alert('游客先登录!');
            }
            if(data==-3){
                alert('本人无需支付!');
            }
            if(data==-4){
                alert('查看失败!');
            }
            if(data==-1){
                alert('不需要支付!');
            }
            if(data==2){

            }
            if(data==0){
                alert('积分不足,去赚积分!');
                window.location.href = "URL";
            }
            if(data==1){
                window.location.reload();
            }
        }   ,

        error: function(){
        }
    });
       // console.log(e.index)
    });
    dia.on("dialog:hide",function(e){
       // console.log("dialog hide")
    });

这样的结果肯定是两次请求了,有可能是在设置点击事件出了问题,,我有过这样经验,点击一次按钮,执行两次,解决办法是,解绑了点击事件,在绑定事件就可以了

window.location.href = "URL";

window.location.reload();
看下这里,它们引起跳转,而如果你页面刷新后会又执行到这段脚本,就可能执行2次

第一次运行是正常的,当你输入data为0时,则执行window.location.href = "URL"; 此行有刷新刷新当前页面的功能,刷新了程序自然重在运行一次,也就是你认为的两次。

你好,不要单独 这么多 if 用 else if 这中去判断

你把 window.location.href = "URL"; 这个去了,然后你data 0 试下会弹窗几次,你就知道了

看了代码,为什么不用switch