将变量传递给.ready(函数)

时间:2018-04-19 12:24:27

标签: ajax geolocation document-ready

我有一个为用户找到lat和lng坐标的函数:

function geoFindMe() {
  var output = document.getElementById("out");

  if (!navigator.geolocation){
    output.innerHTML = "<p>Geolocation is not supported by your browser</p>";
    return;
  }

  function success(position) {
    var latitude  = position.coords.latitude;
    var longitude = position.coords.longitude;

    output.innerHTML = '<p>Latitude is ' + latitude + '° <br>Longitude is ' + longitude + '°</p>';

    var img = new Image();
    img.src = "https://maps.googleapis.com/maps/api/staticmap?center=" + latitude + "," + longitude + "&zoom=13&size=300x300&sensor=false";

    output.appendChild(img);
  }

  function error() {
    output.innerHTML = "Unable to retrieve your location";
  }

  output.innerHTML = "<p>Locating…</p>";

  navigator.geolocation.getCurrentPosition(success, error);
}

我希望能够将lat和lng值传递给我的ajax请求。

$(document).ready(function(){

$('.submitLocation').click(function(){

    $.ajax({
        url:

问题是当我在.ready函数内部时,我不知道如何传入ajax请求。 (.click函数用于当用户输入搜索词时,但添加地理位置意味着这不是必需的,因此我将其改为:如果latitute不为null,则执行x else .click(function))。

1 个答案:

答案 0 :(得分:0)

我最终创建了另一个带有另一个ajax请求的函数来处理lat和lng的请求。

function geoFindMe() {

        function success(position) {
        var latitude  = position.coords.latitude;
        var longitude = position.coords.longitude;

        $.ajax({
            url: "https://api.openweathermap.org/data/2.5/forecast?lat=" + latitude + "&lon=" + longitude + "&units=metric" + "&APPID=ID",
            type: "GET",