我遇到了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()
我也尝试将它加载到索引的主体中。
非常感谢任何帮助=)
问候,弗雷德
答案 0 :(得分:0)
首先,您可以考虑将navigator.geolocation.getCurrentPosition()
替换为navigator.geolocation.watchPosition()
。这将在每次设备收到位置更新时调用您的成功或错误处理函数,而不是每20秒需要ping一次以查看它是否已更改。
关于页面更改,只要您使用多页面模板,就可以在导航到任何子页面和从任何子页面导航时调用处理函数。
Here’s a JS fiddle illustrating this
希望这有帮助!