元素鼠标的名称正在悬停

时间:2011-07-10 02:53:51

标签: jquery

我正在使用一个全局变量,在鼠标输入div时在true和false之间切换,然后我在其他地方使用此变量的值来显示/隐藏另一个元素,具体取决于值。

实际上,另一种做我想做的事就是知道鼠标是否正在盘旋一个名为MyDiv的div。 我希望删除使用mouseenter / mouseleave事件切换的全局变量。

我试过了:

 var test = $('#MyDiv').mouseover() ? 1 : 0;

但它不起作用。

如果您有关于返回正在悬停的div名称的 1-liner 建议,请告诉我。

感谢。

PS:我已经知道可以用1行以上来完成

3 个答案:

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