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; }); });