繁体   English   中英

如果Mouseover Div等于False-jQuery / Javascript

[英]If Mouseover Div Equals False - JQuery / Javascript

我正在尝试使它起作用:

if($('#myDiv').hover() == false) {
  myFunction();
}

Chrome或Firebug控制台的错误处理方式不多。 我看了其他一些帖子,有一个答案是这样的:

if($('#myDiv').is(':hover') == false) {
  myFunction();
}

但是,这也不起作用。

如果有帮助,请使用jsfiddle: http : //jsfiddle.net/yuwPR/2/

任何想法表示赞赏。

谢谢

编辑:

感谢您的回答,我什么都做不了。 我认为这可能是不可能的。 哦,我会尝试其他的!

再次感谢

ps最有创造力的答案标记为正确,并全面投票。

在不知道最终意图的情况下,您可以将鼠标悬停在document并检查当前的target.id

$(document).mouseover(function(event) {
    if (event.target.id == "myDiv") {
        $("body").css("background-color", "red"); //over the div so change the color
        return;
    }
    $("body").css("background-color", "green"); //no on the div
});

jsfiddle上的代码示例。

悬停函数需要2个回调函数:

('#myDiv').hover(function () {
        // function to call when hovering 
    }, 
    function () { 
        myFunction(); 
    }
);

因此,当悬停为“ false”时,即在鼠标移出时,将调用第二个函数。

如果只对悬停时感兴趣的事情感兴趣,可以使用mouseout()函数:

$('#myDiv').mouseout(function() {
        myFunction();
    }
);

您的第一个电话永远无法使用:

$('#myDiv').hover()

这实际上是“触发元素上的hover事件”。 它不会检查您的用户当前是否将鼠标悬停在元素上。

您的第二个公式应该起作用:

$('#myDiv').is(':hover')

这将检查元素当前是否有鼠标悬停在该元素上。 但是,它似乎不适用于文档加载。 在这里可以看到一个有效的示例。 如果您可以弄清楚自己要做什么,则可能可以找到这种风格的工作代码。

此代码示例设置了一个全局js变量来存储div的悬停状态。 然后,我使用jquery悬停在true / false之间切换。 然后,我们仅每10毫秒触发一次检查悬停状态的函数。 目前,我只是设置窗口状态,以告诉您是否悬停。

var _MOUSEOVER_IN_PROGRESS = false; //stores the hover state
function isover(){
    if(_MOUSEOVER_IN_PROGRESS){
        window.status = 'Still over!';
    } else {
        window.status = 'You are not hovering on me!';
    }
    setTimeout("isover()",10); //checking every 10ms! 
}



$(document).ready(function(){
    isover();
    $('#mydiv').hover(
        function(){ _MOUSEOVER_IN_PROGRESS = true; }, 
        function(){ _MOUSEOVER_IN_PROGRESS = false; }
    );
});

编辑了我的代码! 我的mydiv悬停捕获未包装在准备好的文档中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM