在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
问题描述:
如上提现页面,点击 “确认提现”按钮后,ajax请求服务端,成功后 window.history.go(-1); 回退到上一页面;
但是实际运行时,没有回退,还是在当前页面,为什么?
html 代码:
<a id="a_withdrawal" onclick="withdrawal()" href="#" >确认提现</a>
js代码:
function withdrawal(){
$.ajax({
url:purl,//表单action值
type: 'post',
data: {money:$(".withdrawal_amount").val(), password: des.getDes(passwd)},
dataType:"json",
success: function(data, status){
window.history.go(-1);
}
});
return false;
}
问题分析:
问题的关键在于 html里用的是 <a>标签,并且设置了 href=“#” ,在我们点击的时候触发了withdrawal()函数的同时,href="#",也执行了,那么window.history里就有了两个当前页面,所以 window.history.go(-1); 时回退还是在当前页面。
问题解决:
其实问题的原因是 history里多了一个当前页面,而不是不是go(-1)不起作用,那么执行两遍 window.history.go(-1); 是不是就可以了呢?
是可以,但是这样写代码太傻了!
解决这个问题的一个关键技术点是:
1 onclick = "ture/false"
true 会执行 href的页面跳转,false 不会,除了<a>标签,同样类似的还有 submit类型的btn
2 οnclick="return func()" 和 οnclick="func()" 区别
不加 return 等同于 οnclick="true"
所以答案是: onclick="return withdrawal()" withdrawal()函数返回false
|
请发表评论