そこで、Jquery Mobile で 30 秒間カウントダウンするページを設定しようとしています。次の機能が必要です。
(1) pageshow でカウントダウンを開始します (2) カウントダウンが切れると、新しいページにリダイレクトします (3) カウントダウンが切れる前にユーザーがクリックして離れた場合 (pagehide)、タイマー関数を終了してカウントをリセットします。
だからここに私の試みがあります。の下にコードを配置しました<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;
。ページ非表示でその間隔のカウントダウン機能を停止する方法はありますか?