我有 2 个 js 文件,1 个是将位置数据存储在一个对象中,另一个是单击事件等的事件处理程序。
这有效:
var Geology = {
coords: {},
error: '',
setPosition: function (position) {
Geology.coords = position.coords;
// DEBUG
for (var prop in Geology.coords)
console.log(prop + ': ' + Geology.coords[prop]);
},
setError: function (error) {
Geology.error = error;
}
};
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(Geology.setPosition,Geology.setError,{timeout:10000});
}
但我希望能够在必要时通过点击或计时器更新位置数据。每当我尝试这样做时,它都不会像最初那样将变量分配给 Geology。
像这样:
jQuery(document).ready(function($){
$('.toggle').click(function(){
//- get geo location if available
if (typeof Geology === 'object') {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(Geology.setPosition,Geology.setError,{timeout:10000});
}
}
});
});
我在控制台中没有收到错误,但它只是失败并且不运行回调。但是,它确实运行 getCurrentPosition 方法,因为我已经测试过它是否能够通过条件。