0

jQuery Mobile、javascript に問題があり、geolocaton を取得しています。

私は現在、ページに入ったときにコードをロードするために以下を使用しています:

$(document).on('pageinit', function(){

ユーザーが可視性を可視に設定している場合、ID が可視の div が表示されます。これを使用して、初めてジオロケーションを呼び出します。

if ($('#visible').length) {
    navigator.geolocation.getCurrentPosition(sucessHandler, errorHandler);
}

この後、20 秒ごとに地理位置情報を呼び出します。

setInterval(function() {
    if ($('#visible').length) {
        navigator.geolocation.getCurrentPosition(sucessHandler);
    }
}, 20000);

私の問題は、サブページのいずれかのページを離れてこのページに戻ると、これらのコードが再び実行されないことです。pageinit の代わりに、javascript をロードするために次のことを試みました。

$(document).on('pagebeforeshow', '#index', function(){  

$(document).on('pageinit', '#index', function()

インデックスの本体にもロードしてみました。

どんな助けでも大歓迎です=)

よろしく、 フレッド

4

1 に答える 1

0

まず、 に置き換えることを検討navigator.geolocation.getCurrentPosition()してnavigator.geolocation.watchPosition()ください。これにより、デバイスが位置の更新を受信するたびに、成功またはエラーのハンドラー関数が呼び出されます。位置が変更されたかどうかを確認するために 20 秒ごとに ping を実行する必要はありません。

ページの変更に関しては、複数ページのテンプレートを使用している限り、サブページとの間を移動するときにハンドラー関数が呼び出される必要があります。

これを説明するJSフィドルがあります

お役に立てれば!

于 2013-06-09T16:33:46.667 に答える