gpt4 book ai didi

javascript - 从 HTML 中的另一个脚本调用变量

转载 作者:行者123 更新时间:2023-11-30 16:43:33 25 4
gpt4 key购买 nike

我目前有一个 HTML 文件,其中包含一个声明如下的脚本:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
code.......
var a = "hello"
});
</script>

我正在尝试在 HTML 文件中添加另一个脚本,该脚本将调用此变量“a”。现在,我正在做这样的事情:

<script type="text/javascript">                               
alert(a);
</script>

但它没有发出任何警报。如果我将 a 替换为“hello”之类的字符串,我会收到警报。我调用变量错误吗?我试过寻找解决方案,但他们都说你应该能够轻松地从另一个脚本调用变量,假设该脚本之前已声明和初始化。谢谢。

最佳答案

a 声明移到函数之外。

例如,

var a;

$(document).ready(function() {
code.......
a = "hello"
});

然后……

alert(a);

请记住,变量是函数作用域,因此如果您在函数内部定义它,它将在函数外部不可见。


根据评论更新:

因为您现在在尝试与 a 变量交互时遇到计时问题,所以我建议引入事件总线(或其他一些机制)来协调计时。鉴于您已经在使用 jQuery,您可以创建一个简单的总线,如下所示:

var bus = $({});

bus.on('some-event', function() {});
bus.trigger('some-event', ...);

这实际上也有助于更好的代码组织,因为现在您实际上只需要总线是全局的,并且您可以在事件中传递数据,而不是一堆其他随机变量。

例如,

var bus = $({});

$(document).ready(function() {
var a = 'hello';
bus.trigger('some-event', { a: a });
});

然后在你的其他文件中:

bus.on('some-event', function(e, data) {
alert(data.a);
});

JSBin example (显然不会分布在多个文件中,但适用相同的原则)。

关于javascript - 从 HTML 中的另一个脚本调用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31569821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com