我有两个部分
我认为if(navigator.geolocation)
不会检查是否授予了权限,只是该地理位置与浏览器兼容。
第1节$.getJSON(address, function(data)
中的这一行不像第2节那样执行。如果我把`console.log(地址)放在它之前,它会显示,但在.getJSON范围内它不会'吨。
由于功能相同而感到困惑。
$(document).ready(function() {
//GET STUFF FUNCTION
function getStuff(address) {
api = address; //**EDIT** changed to address
console.log("clicking or entering works yes");
$.getJSON(api, function(data) {
console.log("yay it works");
});
};
// SECTION 1
$("#searchForm").submit(function(e) {
var searchInput = $("#searchInput").val();
var address = "api.openweathermap.org/data/2.5/weather?q=" + searchInput + "&appid=?";
e.preventDefault();
getStuff(address);
});
$("#searchInput").keypress(function(e) {
if (e.which == 13) {
$("#searchBtn").click();
};
});
//SECTION 2
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
lat = position.coords.latitude;
lon = position.coords.longitude;
var address = 'http://api.openweathermap.org/data/2.5/weather?lat=' + lat + '&lon=' + lon + '&appid=?';
//tried to use this function for search
getStuff(address);
});
我尝试尽可能地减少这个,我不确定如何在小提琴上做AJAX请求。 编辑:更新https://jsfiddle.net/mq10ps5c/10/
谢谢大家,非常感谢任何批评
答案 0 :(得分:1)
在第1部分和第2部分中,您设置了地址,然后在此GetStuff
函数中调用GetStuff
,而不是您所指的地址,而是引用api
将您的GetStuff
功能更改为以下内容:
function getStuff(address) {
api = address == null ? "/echo/JSON/" : address;
console.log("clicking or entering works yes");
$.getJSON(api, function(data) {
console.log("yay it works");
});
};
首先检查地址是否为null,如果这样设置api
为“/ echo / JSON /”,否则将api
设置为address
值。