Javascript JQuery-gloabl数组未按预期工作
这将在警报框中提供文件的内容。只要警报位于get functions块内,它就可以正常工作:Javascript JQuery-gloabl数组未按预期工作,javascript,jquery,arrays,global-variables,Javascript,Jquery,Arrays,Global Variables,这将在警报框中提供文件的内容。只要警报位于get functions块内,它就可以正常工作: var allActivities = []; $(document).ready(function() { $.get('./activities.txt', function(result) { currentActivity = result.split(","); allActivities.push(currentActivity);
var allActivities = [];
$(document).ready(function() {
$.get('./activities.txt', function(result) {
currentActivity = result.split(",");
allActivities.push(currentActivity);
alert(allActivities); // Alert box returns correct results
});
}
但是,当我将警报移到get函数范围之外时,警报框是空的。我猜我弄乱了一些示波器,但我不知道是什么
var allActivities = [];
$(document).ready(function() {
$.get('./activities.txt', function(result) {
currentActivity = result.split(",");
allActivities.push(currentActivity);
});
alert(allActivities); // Alert box is empty
}
我需要数组
allActivities
是全局的,这样我就可以在.get函数之外访问它。所以我需要最后一个代码示例来工作。换句话说,最后一个代码示例需要提醒内容。从注释中收集:
由于$.get是异步的,因此在填充数组之前会调用该警报。全局阵列正在按预期工作。该警报需要在以后调用,例如在页面加载后单击按钮
我已经对它进行了测试,它运行正常。JavaScript是一种异步语言。对于ajax调用,执行流不会停止。在本例中,
alert
get在ajax调用等待文本文件时执行。$.get是异步的,因此在调用时尚未填充数组alert@Einar是的,会的。@VenugopalJavaScript并不是天生异步的。和