1

Jquery Mobile で別のページ (マルチページではなく単一ページのテンプレート) に移動しても持続する JavaScript 関数があります。

    <script type="text/javascript">
       setInterval("window.location.reload();", 5000);
    </script>

ajaxベースのナビゲーションでリンクするすべてのページで呼び出すのではなく、呼び出し元のページでのみこれが発生するようにするにはどうすればよいですか?

Jquery Mobile 1.2 を使用しています

4

4 に答える 4

3

発生させたいページにバインドします。$('.selector')pageID に置き換えます$('#home')。より具体的にすることもできます$('div[data-role="page"]#PageID')

// Trigger interval
$('.selector').bind('pageinit', function () {
 setInterval("window.location.reload();", 5000);
});

// Stop interval when navigating away
$('.selector').bind('pagehide', function () {
 clearInterval();
});
于 2013-03-27T16:51:06.093 に答える
2

ajaxベースのナビゲーションでリンクするすべてのページで呼び出すのではなく、呼び出し元のページでのみこれが発生するようにするにはどうすればよいですか?

呼ばない?現在、コードはページに含まれている場合は常に実行されるように設定されています。含めないか、他の方法 (if ステートメントなど) で実行しないようにしてください。

于 2013-03-27T16:49:53.183 に答える
2

ナビゲートする直前にインターバルをクリアできます。

まず、作成時に間隔への参照を取得する必要があります。

var intervalRef = setInterval("window.location.reload();", 5000);

次に、次のようにクリアできます。

clearInterval(intervalRef);
// Navigate
于 2013-03-27T16:54:15.510 に答える
2

他のページがロードされたとき、または現在のページが終了したときにタイムアウトをキャンセルするだけです(他のページはajaxでロードされるため、時間間隔が維持されます)。

// trigger
myInterval = setInterval("window.location.reload();", 5000);

// stop
clearInterval(myInterval);
于 2013-03-27T16:55:11.173 に答える