Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在函数外使用变量?_Javascript_Jquery - Fatal编程技术网

Javascript 如何在函数外使用变量?

Javascript 如何在函数外使用变量?,javascript,jquery,Javascript,Jquery,我想在getJSON之外使用country,但结果不正确。尝试定义单击函数的变量top,但未解决我的问题 如何修复它?改变您的方法以使用ajax的异步特性 假设您想在函数中使用country $('#liveUpdate').click( $.getJSON("http://freegeoip.net/json/", function(data) { var country = data.country_name; var ip

我想在
getJSON
之外使用
country
,但结果不正确。尝试定义
单击
函数的变量top,但未解决我的问题


如何修复它?

改变您的方法以使用ajax的异步特性

假设您想在函数中使用country

$('#liveUpdate').click(


        $.getJSON("http://freegeoip.net/json/", function(data) {
            var country = data.country_name;
            var ip = data.ip;
        });

        alert(country);

    });
然后在ajax的成功回调中调用它

function someFunction(country){
    //country used here
}

您可以尝试
$('#liveUpdate')。单击(function(){var country=null;$.getJSON('http://freegeoip.net/json/“,函数(数据){country=data.country_name;var ip=data.ip;});警报(country);})@Sushil:那不行。AJAX是异步的。@Bergi-Heh,当我用同一个目标点击close时,你说得对:)你说得对@RocketHazmat他可以直接使用
$。AJAX
异步:false
@Sushil:我不建议这样做,这是一种不好的做法。它会锁定浏览器,不会教您如何正确使用AJAX。
$('#liveUpdate').click(function(){
        $.getJSON("http://freegeoip.net/json/", function(data) {
            country = data.country_name;
            var ip = data.ip;
            someFunction(country);
        });

    });