所以我试图在 Jquery Mobile 中设置一个倒计时 30 秒的页面。它必须具备以下能力:
(1) 在 pageshow 开始倒计时 (2) 当倒计时到期时,重定向到新页面 (3) 如果用户在倒计时到期之前点击离开(页面隐藏),退出计时器功能并重置计数。
所以这是我的尝试。我已将代码放在<div data-role="page" id="pay">
.
<script>
$("#pay").live("pageshow",function(){
alert("show!");
var sec = 10;
var timer = setInterval(function() {
$('#seconds').text(sec--);
if (sec == 5) { alert("5 seconds mark")};
if (sec == -1) {
document.location = "cuentas";
clearInterval(timer);
}
}, 1000);
});
$("#pay").live("pagehide",function(){
alert("hide!");
clearInterval(timer);
var sec = 10;
});
</script>
我得到了“表演!” 警报。我收到“5 秒标记”警报。我得到了“隐藏!” 当我在倒计时到期之前切换页面时发出警报。但是,如果我离开页面,比如说在 8 秒时,我的菜单栏会冻结 - 我无法再导航到其他页面 - 我会看到 5 秒警报!区间函数永远不会结束......我不确定出了什么问题。
另一个注意事项---
$("#pay").live("pagehide",function(){
clearInterval(timer);
var sec = 10;
alert("hide!");
});
当我这样做时,我从来没有看到警报......
我试过了return false;
,,,return;
。break;
任何想法如何杀死页面隐藏上的间隔倒计时功能?