以下是window
:
所以现在,当我向下滚动(孩子们以与上面显示的相同的方式出现,一直很长)时,我看到了我想要的东西:
但我只是无法访问它。为什么呢?
这里是代码,位于js文件夹中的函数中:
function update_match(slot, match, s) {
$("#match" + slot + " i").text(match);
console.log(window);
console.log(window.saves1); // undefined
console.log(window.external.saves1); // undefined
(slot == 1) ? window.saves1.item = s : window.saves2.item = s;
}
变量的创建方式如下:
function set_global(name, pos, ab, needSave, s) {
window.saves1 = {item: s};
window.saves2 = {item: s};
}
在js / main.js文件中。
文件结构如下:
index.php (where the php code runs and calls update_match())
js - main.js
- read_match.js
答案 0 :(得分:1)
您过早地运行update_match。
似乎在运行update_match时,尚未定义全局变量。它们是稍后创建的。但是因为console.log在那时没有回显出窗口对象的快照,所以它显示了全局变量,因为在脚本结束时它们被创建了,而console.log显示了"完成了" window对象。
要解决您的问题,请在文档准备好之后运行update_match,或者使用具有合理延迟的setTimeout函数运行update_match:
setTimeout(function(){ update_match(); }, 500);
要在文档准备好后运行该功能,请查看以下文章:
jQuery Mobile: document ready vs page events
您可以通过以下方式完成:
$(document).ready(function() {
update_match();
});