Jquery – 从另一个函数中获取变量

我的页面上有两个function。 我试图找到一种方法来访问函数2中的函数1中的变量:

$(function() { $('a[id=1]').live("click", function(event) { event.preventDefault(); var Var1 = "something1"; }); }); $(function() { $('a[id=2]').live("click", function(event) { event.preventDefault(); var Var2 = event.var1; }); }); 

所以我确信我的上面是不正确的,但你可以看到在函数2中我是如何从第一个函数中获取变量的。

有没有办法可以做到这一点? 我不知道为什么,但我一直认为它与event.var1或事件function有关。

您需要在两个函数之外声明变量,在它们都可以访问的范围内。 我建议将两个文档就绪处理程序组合成一个函数并在那里声明变量:

 $(function() { var var1; // may want to assign a default $('a[id=1]').live("click", function(event) { event.preventDefault(); var1 = "something1"; }); $('a[id=2]').live("click", function(event) { event.preventDefault(); var var2 = var1; }); }); 

或者,如果您需要从其他位置访问变量,也可以将变量设置为全局变量。

请注意,两个单击事件彼此无关,因此它们当然不共享事件数据。 此外,单击第二个锚点可能会在单击第一个锚点之前发生,因此您可能希望为var1提供默认值和/或测试undefined befor在第二个单击处理程序中使用它。

(另外我已经将Var1更改为var1因为JS约定是用小写字母开始变量名 – 你不必遵循约定,但我推荐它。)

每次单击时每个事件都是唯一的,您可以将结果存储在窗口对象的全局变量中并处理事件的顺序

 $(function() { $('a[id=1]').live("click", function(event) { event.preventDefault(); window.Var1 = "something1"; }); }); $(function() { $('a[id=2]').live("click", function(event) { event.preventDefault(); var Var2 = window.Var1; }); });