.getJSON 不会执行输入
.getJSON won't execute for input
我有 2 个部分
- 第一节,我想获取用户输入的位置信息。这是 .getJSON 不执行的地方。
- 第二部分,我检查地理定位是否与浏览器兼容,如果允许,则执行 .getJSON。这个很好用。
我认为 if(navigator.geolocation)
不会检查是否已授予权限,只会检查地理位置是否与浏览器兼容。
第 1 节中的这一行 $.getJSON(address, function(data)
不像第 2 节中那样执行。如果我将 `console.log(address) 放在它前面,它会显示,但在 .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);
});
我尽我所能将其缩小,我不确定如何在 fiddle 上执行 AJAX 请求。
edit:updatehttps://jsfiddle.net/mq10ps5c/10/
谢谢大家,非常感谢任何批评
在第 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");
});
};
首先检查地址是否为空,如果是,则将 api
设置为“/echo/JSON/”,否则将 api
设置为 address
值。
我有 2 个部分
- 第一节,我想获取用户输入的位置信息。这是 .getJSON 不执行的地方。
- 第二部分,我检查地理定位是否与浏览器兼容,如果允许,则执行 .getJSON。这个很好用。
我认为 if(navigator.geolocation)
不会检查是否已授予权限,只会检查地理位置是否与浏览器兼容。
第 1 节中的这一行 $.getJSON(address, function(data)
不像第 2 节中那样执行。如果我将 `console.log(address) 放在它前面,它会显示,但在 .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);
});
我尽我所能将其缩小,我不确定如何在 fiddle 上执行 AJAX 请求。 edit:updatehttps://jsfiddle.net/mq10ps5c/10/
谢谢大家,非常感谢任何批评
在第 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");
});
};
首先检查地址是否为空,如果是,则将 api
设置为“/echo/JSON/”,否则将 api
设置为 address
值。