2013-01-15 55 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)'。您不應該需要循環訪問屬性。兩者都可以工作,但這樣做可能更容易。 –

回答

相關問題