0

有什么方法可以解决这个问题,以便我可以在 microAjax 函数的范围之外获取变量?

我希望 latlng 在 microAjax 之外采用 ipaddress 的值。

var latlng = microAjax("php/latlng.php", function(ipaddress) {
            console.log(ipaddress);
            return ipaddress;
        });

        console.log(latlng);

我也尝试过这样的事情:

var lat;
var lng;
microAjax("php/latlng.php", function(ipaddress) {
            var arrayOfLocation = ipaddress.split(" ");
            lat = parseFloat(arrayOfLocation[0]);
            lng = parseFloat(arrayOfLocation[1]);
            console.log(ipaddress);
        });

        console.log(lat);
        console.log(lng);

但在这两种情况下,函数外部的变量都是未定义的。如何从 microAjax 定义变量,但在其范围之外?

4

1 回答 1

1

您的问题是异步调用,而不是范围。

在第二个示例中输出 lat 和 lng 后,ajax 就完成了。

在 jquery ajax 中,参数 async 修复了这个问题。 http://api.jquery.com/jQuery.ajax/ (如果您使用的是 jquery)

于 2013-01-28T18:51:17.007 回答