0
我有2个js文件,1个是将位置数据存储在一个对象中,另一个是点击事件等事件处理程序。地理定位getCurrentPosition在回调函数中表现为奇数
这工作:
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});
}
但我希望能够通过单击或计时器,如果需要更新的位置数据。任何时候我都会尝试这样做,它不会像最初那样将变量分配给地质学。
这样的:
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方法,因为我已经测试过它是否通过条件。
_“我已经测试过它是否能通过条件”_所以你100%确定'typeof Geology ==='object''返回true,对吗? – wakooka
是的,我可以让警报发生在里面。 –
你可以直接调用'console.log(Geology.coords)'。您不应该需要循环访问属性。两者都可以工作,但这样做可能更容易。 –