2013-01-15 54 views
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方法,因为我已经测试过它是否通过条件。

+0

_“我已经测试过它是否能通过条件”_所以你100%确定'typeof Geology ==='object''返回true,对吗? – wakooka

+0

是的,我可以让警报发生在里面。 –

+0

你可以直接调用'console.log(Geology.coords)'。您不应该需要循环访问属性。两者都可以工作,但这样做可能更容易。 –

回答

相关问题