javascript - 在 jQuery 语句之外访问 javascript 变量

标签 javascript jquery

$.getJSON("../../index.php/churchlocator/base", function(data) {
    base_url = data.base;
}); 
alert(base_url);

如何在上面的代码中获取可以在 getJSON var 外部访问的 base_url?

最佳答案

这里的正确答案是将所有引用 ajax 调用结果的代码放入 ajax 调用的成功处理程序中。不要为此使用全局变量:

$.getJSON("../../index.php/churchlocator/base", function(data) {
    var base_url = data.base;
    alert(base_url);
    // or you may call some other function here and pass it the data
    myFunction(base_url);
}); 

Ajax 调用是“异步”的(这就是 Ajax 中 A 的含义)。这意味着它们将在未来某个时间完成,并且您的其他 javascript 会继续运行。当他们完成时,他们将调用他们的成功处理程序。因此,您知道数据何时从 Ajax 调用返回的唯一方法是在成功处理程序中放置代码以对返回的数据进行操作,或者从该成功处理程序调用函数并向其传递数据。

这是异步编程,如果您使用任何类型的异步功能进行编程,则必须使用此模型。您不能将传统的顺序编程与异步函数调用结合使用。

关于javascript - 在 jQuery 语句之外访问 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19532139/

相关文章:

javascript - 如何通过比较对象中具有不同元素的两个对象数组来过滤数组?

jquery - .delegate() 和 live() 有什么区别?

javascript - 追加到 jQuery 类中最近的 div

javascript - 使用 jQuery 获取表中的列 id

javascript - 固定导航下方的 HTML 内容

javascript - 从输入值中删除单击的 id

javascript - Angular ui-router 参数不清楚

javascript - Angularjs 指令和 string.format

jquery - 根据手机的显示方式更改文本大小

jquery - 在MVC中添加动态表单内容