如何验证鼠标悬停在元素上?

时间:2009-06-02 10:20:20

标签: javascript jquery

您知道如何检查鼠标是否在元素上吗?

这样的东西?

setTimeout(function() {
    if($(this).mouseover()) {  // this not work
        return false;   
    } else {
        $(this).hide();
    }
}, 1000);

感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用以下内容:

var isMouseOver = false;

$(myitem).hover(function() {isMouseOver = true;}, 
                function() {isMouseOver = false;});

答案 1 :(得分:1)

我假设你在一个闭包中操作,'this'代表一个元素:

var mouseovered = false,
    myElem = this;

$(myElem)
    .mouseover(function(){
        mouseovered = true;
    })
    .mouseout(function(){
        mouseovered = false;
    });

setTimeout(function() {
   if(mouseovered) {  
        return false;   
    } else {
        $(myElem).hide();
    }
}, 1000);

请注意,我使用的是“myElem”而不是“this”关键字,在setTimeout回调的上下文中,它将是对Window对象的引用 - 显然不是你想要的。

答案 2 :(得分:0)

在有问题的元素上使用onmouseover事件来调用一个函数来隐藏有问题的元素(因为这似乎是你想要做的)。