我有以下jQuery示例:
$('li.mega').mouseover(function() {
var megaTrue = 1;
});
$('li.mega').mouseout(function() {
var megaTrue = 0;
});
而不是
function functionName() {
if( megaTrue == 1 ) {
//do something
} else {
//do nothing
return false;
}
}
但是megaTrue
将是未定义的,jQuery中是否有类似GLOBAL变量的东西?
所有建议都非常感谢。
答案 0 :(得分:2)
var megaTrue=0;
$('li.mega').mouseover(function() {
megaTrue = 1;
});
$('li.mega').mouseout(function() {
megaTrue = 0;
});
将megaTrue设置为全局变量
答案 1 :(得分:1)
你可以,但是使用全局变量很少是一个好主意:这在Javascript和任何地方都是如此。存储数据的语义,有意义的地方是元素本身。 jQuery使用data
方法支持此功能:
$('li.mega').mouseover(function() {
$(this).data('mousedOver', true);
}).mouseout(function() {
$(this).data('mousedOver', false);
});
如果您有许多li.mega
元素并且您不关心哪一个被鼠标悬停,您可以在父元素上设置值:
$('li.mega').mouseover(function() {
$(this).parent().data('mousedOver', true);
}).mouseout(function() {
$(this).parent().data('mousedOver', false);
});
抱歉,错过了关键步骤:检查值。然后,您可以使用data
方法从元素中获取值,如下所示:
if ($('li.mega').data('mousedOver')) {