在$(document).ready之外使用jquery变量

时间:2012-09-03 13:02:16

标签: jquery

我正在使用jQuery,我有两个不同的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) 还有什么更好的吗?

2 个答案:

答案 0 :(得分:4)

创建自己的命名空间:

var my = {};

...

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

 ...

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

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

答案 1 :(得分:0)

Var A在函数中定义,其寿命仅限于函数的执行。你需要让它成为全球性的,这就是为什么全局变量首先存在的原因。