我想知道是否可以在函数之外传递变量?
$('.selector').hover(function(){
var variable = $('.selector2', this).attr('id');
});
我需要让这个变量在这个悬停函数之外使用它。有可能吗?
谢谢!
编辑------------------------
我正在尝试点击其他在悬停函数之外获取该变量的内容
$('a.btn').click(function(){
alert(variable);
});
答案 0 :(得分:2)
您希望首先在更高的范围内声明该变量:
var variable;
$('.selector').hover(function(){
variable = $('.selector2', this).attr('id');
});
答案 1 :(得分:0)
在此之后的下一行代码中?如果我的朋友就是这种情况,你会严重误解整个jQuery的工作原理。
您正在声明回调函数的实际运行代码是什么。此处定义的函数将在未来的某个时间点调用,不受您控制。*
你在这里遇到的另一个问题是你有一个选择器,它可以包含多个dom元素,0到x个数。
如果你需要从一个容易完成的选择器中获取所有Id的列表,请查看.each()或类似的东西,只要知道你正在处理一组控件而不是单一,即使你只是选择一个项目。
* 除非您自己调用该活动
答案 2 :(得分:0)
最简单的方法是在悬停处理程序之前实例化您想要的变量。这是您更新的代码:
var variable = '';
$('.selector').hover(function(){
variable = $('.selector2', this).attr('id');
});
alert(variable); // alerts empty string because you haven't hovered over '.selector' yet
问题是您可能在设置变量之前尝试访问变量,因为只有在发生悬停时才会设置变量