我正在使用一个全局变量,在鼠标输入div时在true和false之间切换,然后我在其他地方使用此变量的值来显示/隐藏另一个元素,具体取决于值。
实际上,另一种做我想做的事就是知道鼠标是否正在盘旋一个名为MyDiv的div。 我希望删除使用mouseenter / mouseleave事件切换的全局变量。
我试过了:
var test = $('#MyDiv').mouseover() ? 1 : 0;
但它不起作用。
如果您有关于返回正在悬停的div名称的 1-liner 建议,请告诉我。
感谢。
PS:我已经知道可以用1行以上来完成
答案 0 :(得分:2)
您应该将标志存储在jQuery的数据存储中:
$(this).data("mouseover", true);
if ($(this).data("mouseover"))
答案 1 :(得分:1)
你可以这样做:
$('#MyDiv').mouseover(function(){
//show/hide other div or any other code
}) ;
OR
你可以设置另一个全局变量来告诉你鼠标是否像这样悬停在MyDiv
上:
$('#MyDiv').mouseover(function(){
myDivHovering = true;
}).mouseout(function() {
myDivHovering = false;
}) ;
答案 2 :(得分:1)
jQuery使用回调样式来处理事件。您正在描述的功能可以这样实现:
var mouse_on_mydiv = false;
$('#MyDiv').hover(function onMouseIn() {
mouse_on_mydiv = true;
alert(this.id); // => 'MyDiv'
}, function onMouseOut() {
mouse_on_mydiv = false;
});