我有以下程序结构:
的index.html:
<html>
<head>
<script src="first.js"></script>
<script src="second.js"></script>
</head>
...</html>
first.js:
"use strict";
var array = [];
$(document).ready(function () {
$("#xy").on("tap", function () {
array.push(new arrayItem());
} ...
second.js:
console.log(array);
在first.js中,我将一些对象推送到数组,但是second.js中的console.log表示我的数组是空的。我究竟做错了什么?感谢...
答案 0 :(得分:1)
正如之前的用户所说,在文档完全加载后填充阵列时,会立即运行console.log。但是,即使您在加载文档时运行console.log,它仍然不会看到您的变量。你想要做的是在你的'tap'事件上,将数组发送到second.js中定义的函数,如下所示:
在first.js中
"use strict";
var array = [];
$(document).ready(function () {
$("#xy").on("tap", function () {
array.push(new arrayItem());
someFunction(array);
}
在second.js
中function someFunction(array) {
console.log(array);
// Do the rest of your code that requires 'array' here
}
这样,每次触发on tap事件时,someFunction都会传递给数组。
答案 1 :(得分:0)
您的console.log(array)
很可能在文档准备好之前被调用,即主应用程序代码运行时。
在将数据添加到数组后,您应该将console.log
移动到主文件,或者在主函数完成后使用回调或事件来记录它。