2014-11-13 76 views
1

這是我的代碼 http://jsfiddle.net/#&togetherjs=mjFbd89fzFJS地理位置和存儲

$(document).ready(function() { 

    if (navigator.geolocation) { 

    } 
    if (typeof (localStorage) != "undefined") { 

     navigator.geolocation.getCurrentPosition(function (position) { 
      localStorage.setItem('latitude', position.coords.latitude); 
      localStorage.setItem('longitude', position.coords.longitude); 
     }); 

     $('#location').innerHTML = localStorage.getItem('latitude') + ' ' + localStorage.getItem('longitude'); 

    } 
}); 

這裏的HTML

<BODY> 
     <h1>you're here</h1> 

     <h2 id="location"></h2> 

</BODY> 

我得到提示分享我的位置,但在H2標籤沒有得到更新,即使位置存儲在本地存儲中

回答

1

getCurrentPosition是異步函數,將在執行$('#location')之後執行,您可以存儲它在本地存儲中,但此數據將在第二頁加載後可用,您可以在getCurrentPosition中設置$('#location')或者您可以使用Deferred

#1 
$(document).ready(function() { 
if (navigator.geolocation) {} 

    navigator.geolocation.getCurrentPosition(function (position) { 
    $('#location').html(position.coords.latitude + ' ' + position.coords.longitude); 
    }); 
}); 

#2 
$(document).ready(function() { 
    var d = $.Deferred(); 

    if (navigator.geolocation) {} 

    navigator.geolocation.getCurrentPosition(function (position) { 
    d.resolve(position.coords.latitude, position.coords.longitude); 
    }); 

    d.done(function(latitude, longitude) { 
    $('#location').html(latitude + ' ' + longitude); 
    }); 
}); 

Example