4

简单的问题,我将如何在 Jquery 中完成此功能:测试鼠标是否悬停.myBox

    if ($(".myBox").mouseleave = true) {
        DO SOMETHING
    } else {something else}

或者

    if ($(".myBox").mouseover = false) {
        DO SOMETHING
    } else {Something else}

注意:我正在寻找一个 IF 语句

4

8 回答 8

10

jQuery 提供了is检查关于 jQuery 对象的条件的方法。在您的情况下,您可以检查:hoverCSS 伪类:

$('.myBox').is(':hover') === true

看一下这个演示,尝试单击按钮(这将提醒true)和选项卡并在按钮上按回车(没有鼠标,它将返回false)。

演示:http: //jsfiddle.net/marcuswhybrow/LL5JD/

于 2011-01-28T16:55:20.233 回答
4

看看jQuery Mouse Over

$(".my_box").mouseover(function(){
    // Mouse over...
});

$(".my_box").mouseout(function(){
    // Mouse left...
});

这是一个示例,当将鼠标悬停在图像上时为图像添加边框,如果未重新悬停,则在 x 时间后将其删除:查看它在此处工作

var hover_off = false;
var hover_count = 1000;

$(".my_box").mouseover(function() {
    hover_off = false;
    $(this).addClass('hovering');
});

$(".my_box").mouseout(function() {
    hover_off = true;
    setTimeout(myMouseOut, hover_count);
});

function myMouseOut() {
    if (hover_off) {
        $(".my_box").removeClass('hovering');
    }
}
于 2011-01-28T16:57:29.527 回答
2

没错,与 jQuery 1.5.1 一起使用的 $('.myBox').is(':hover') 会抛出错误,但在我的测试中仅在 Opera Browser (11.01) 中:未捕获的异常:语法错误,无法识别的表达式:悬停

一种解决方法是使用否定表达式: $('.myBox').is('not(:hover)') 当我在 Opera 11、FF4、IE7、Chrome 5 中进行测试时效果很好。

于 2011-04-15T05:48:21.333 回答
1

使用 .hover() http://api.jquery.com/hover/

于 2011-01-28T16:51:19.443 回答
1
$(".myBox").hover(
           function(){
               //DO SOMETHING ON MOUSE ENTER
           },
           function(){
               //DO SOMETHING ON MOUSE LEAVE
           }
 });
于 2011-01-28T16:56:26.990 回答
1

这对我有用:

var hover = false;
$('.someClass').each(function(i,e){
    hover = !hover ? $(e).is(':hover') : true;
});

if (hover)
    // do something
else
    // do something else
于 2012-08-07T14:30:54.960 回答
0

使用这个: http: //plugins.jquery.com/project/enterleave-events

$('.myBox').bind('enter leave',function() {
  // do something, use $(this) to get the object
});
于 2011-01-28T16:53:00.627 回答
0

mouseentermouseleave事件采取行动。

或者使用hover可以同时处理它们的..

$('.myBox').hover(
   function(e){
     //do the mouseenter things here...
   },
   function(e){
     //do the mouseleave things here...
   }
);

http://www.jsfiddle.net/gaby/ECYD4/上的示例

于 2011-01-28T16:53:53.577 回答