我有一个在提前输入脚本中创建的值,它可以正常工作,直到我尝试将geo-coords与我的先行项目一起传递。如果我硬编码地理变量它工作正常。我已经将下面的两个VAR示例分解为什么有效,哪些无效。有任何想法吗?请帮助和谢谢
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
}
}
function showPosition(position) {
document.getElementById("lat").value = position.coords.latitude;
document.getElementById("lon").value = position.coords.longitude;
如果我硬编码下面两行代码的值,一切都很好。只是测试值
var lat = 123.123444;
var lon = 100.999999;
但是,如果我执行接下来的两行,我的预先输出的脚本将显示下拉结果,但不会让我选择结果
var lat = position.coords.latitude;
var lon = position.coords.longitude;
}
$(document).ready(function() {
$('#my_input').typeahead({
source: function(query, result) {
$.ajax({
url: "search_script.php",
method: "POST",
data: {
query: query
},
dataType: "json",
success: function(data) {
result($.map(data, function(item) {
return item;
}));
}
})
},
updater: function(item) {
location.href = 'cart.php?shop_name=' + item + '&latitude=' + lat + '&longitude=' + lon
return item
}
});
});
</script>
答案 0 :(得分:0)
将showPosition函数更改为以下内容。我还将变量ID long更改为getlon,因为long是保留字,也将lat更改为getlat。坚持3天
function showPosition(position) {
document.getElementById("getlat").value = position.coords.latitude;
document.getElementById("getlon").value = position.coords.longitude;
lon=document.getElementById("getlon").value;
lat=document.getElementById("getlat").value;
}