繁体   English   中英

无法获取全局变量

[英]Can't get global variable

这是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

您正在运行update_match太早。

似乎在运行update_match时,尚未定义全局变量。 它们是稍后创建的。 但是因为console.log当时没有回显窗口对象的快照,所以它显示了全局变量,因为在脚本结尾创建了全局变量,而console.log显示了“完成的”窗口对象。

要解决您的问题,请在文档准备好之后或在合理的延迟后使用setTimeout函数,稍后再运行update_match:

setTimeout(function(){ update_match(); }, 500);

要在文档准备好后运行该功能,请查看以下文章:

jQuery Mobile:准备文档与页面事件

您可以通过以下方式实现:

$(document).ready(function() { 

update_match();

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM