qq_41265012
2019-06-01 10:59
采纳率: 94%
浏览 2.0k
已采纳

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • maikangzhi 2019-06-01 12:25
    已采纳

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2019-06-01 11:12

    window.location.href = "URL";

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

    评论
    解决 无用
    打赏 举报
  • |岚侠 2019-06-01 11:36

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

    评论
    解决 无用
    打赏 举报
  • lllomh 2019-06-02 00:24

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

    评论
    解决 无用
    打赏 举报
  • Sometimes_Ymc 2019-06-06 15:28

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

    评论
    解决 无用
    打赏 举报
  • 专套猴子 2019-06-12 18:22

    看了代码,为什么不用switch

    评论
    解决 无用
    打赏 举报