roo*_*top 8 javascript jquery geolocation jquery-callback
我有一个试图从浏览器获取位置设置的应用程序,这往往需要一点时间,所以我希望它在页面加载时运行.但是,如果在运行位置回调之前单击"提交"按钮,则表示没有位置数据.我的问题很简单,如何在提交表单之前等待我的位置成功回调完成?(没有像睡眠声明那样愚蠢的东西).
理想情况下,我想要一个忙碌的指示灯并等待数据.这可能吗?我有一个代码可以使繁忙的指示器可见,但我不确定如何优雅地等待数据可用.
$(document).ready(function(){
var lat = "";
var lng = "";
var accuracy = "";
var locationFound = false;
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function positionSuccess(loc){
lat = loc.coords.latitude;
lng = loc.coords.longitude;
accuracy = loc.coords.accuracy;
locationFound = true;
});
}else{
alert("I'm sorry, your jerk browser doesn't support geolocation");
locationFound = true;
}
$('#locForm').submit(function(e){
$('#lat').val(lat);
$('#lng').val(lng);
$('#boundary').val($('#boundary-select').val());
}
Run Code Online (Sandbox Code Playgroud)
禁用提交按钮,直到位置数据被传递。
$('input[type="submit"]').attr('disabled','disabled');
Run Code Online (Sandbox Code Playgroud)
然后启用提交按钮
$('input[type="submit"]').removeAttr('disabled');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |