无法使用jQuery变量

时间:2014-11-18 14:11:29

标签: jquery

有谁能告诉我这段代码有什么问题?出于某种原因,我的uiop变量无效......

$(document).ready(function () {
    var siteUrlValue = 'http://www.dagbladet.no/';
    console.group('Initializing Google URL Shortener API...');
    $.urlShortener({
        longUrl: siteUrlValue,
        success: function (shortUrl) {
            var gooGl = shortUrl;
            console.info('The Short Url is: ' + gooGl);
            console.groupEnd();
            setTimeout(function () {
                asdf();
            }, 5000);
        },
        error: function (err) {
            console.error(JSON.stringify(err));
            console.groupEnd();
        }
    });

    function asdf() {
        var uiop = gooGl();
        console.info('The Short Url is: ' + uiop);
    }
});

请参阅jSFiddle

上的示例

2 个答案:

答案 0 :(得分:1)

首先,它是因为你的函数asdf()不了解变量gooGl。其次,gooGl()是函数而不是变量。

试试这个:

setTimeout(function () {
            asdf(gooGl);
}, 5000);

function asdf(gooGl) {
    var uiop = gooGl;
    console.info('The Short Url is: ' + uiop);
}

答案 1 :(得分:0)

你在Ajax调用的成功函数中声明了gooGl。这意味着它不会作为您的asdf函数使用的全局变量处理。你必须通过参数交付它。

另外你调用gooGl()而不是gooGl,这意味着gooGl变量的内容不作为变量类型返回,而是作为函数调用返回。