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);

我的问题是,如果我离开其中一个子页面的页面并返回此页面,这些代码将不会再次运行。我尝试了以下方法来加载 javascript,而不是 pageinit:

$(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 回答