【问题标题】:Using jquery variable outside of $(document).ready在 $(document).ready 之外使用 jquery 变量
【发布时间】:2012-09-03 21:35:59
【问题描述】:

我正在使用 jQuery,我有 2 个不同的 js 文件。

file_1.js

$(document).ready(function(){
    var A = 'varA';
});

file_2.js

$(document).ready(function(){
    console.log(A); // will get an A is undefined because of this closure thing
});

有什么方法可以从一个文件中访问另一个文件中的一个变量? 我需要所有代码都在 $(document).ready(...)

我使用的一种解决方案是使变量成为全局变量(不使用 var A) 有没有更好的?

【问题讨论】:

  • 任何全局变量在技术上都是window 对象的属性。同样,如果您确实需要,您可以将变量存储在任何适当的 DOM 对象上的 .data() 中。
  • 你也可以使用document命名空间并在ready函数中做this.A,比如THIS...

标签: jquery


【解决方案1】:

创建自己的命名空间:

var my = {};

...

 $(document).ready(function(){
     my.A = 'A';
 }

 ...

 $(documet).ready(function() {
     console.log(my.A);
 }

这样,您只有一个全局变量 my 充当所有“全局”对象/函数的命名空间

【讨论】:

    【解决方案2】:

    Var A 是在函数中定义的,它的生命周期仅限于函数的执行。您需要使其成为全局变量,这就是为什么首先存在全局变量的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 2019-07-02
      • 2011-03-30
      相关资源
      最近更新 更多