为什么我的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