私は 2 つの js ファイルを持っています。1 つは位置データをオブジェクトに格納するためのもので、もう 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});
}
しかし、必要に応じてクリックまたはタイマーで位置データを更新できるようにしたいと考えています。私がそれをしようとするときはいつでも、最初のように変数を地質学に割り当てません。
このような:
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 メソッドを実行します。