简单的鼠标悬停不起作用

时间:2011-01-25 18:06:21

标签: jquery hover

我遇到了一个奇怪的问题:

我设置了一个悬停的h2,jQuery应该检查h2是否有一个“主要活跃”类:

$('h2').hover(function (){

        if ($(this).not('.main-active')){$(this).css('color','white');}

        });

$('h2').mouseout(function (){$(this).css('color','black');});

不知怎的,当它有“主要活跃”类时,它继续将h2悬停在白色上?

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

试试这个解决方案:

$('h2').hover(function (){

   if (!$(this).hasClass('main-active')){$(this).css('color','white');}

});

$('h2').mouseout(function (){$(this).css('color','black');});

文档:http://api.jquery.com/hasClass/

答案 1 :(得分:0)

当hover函数本身绑定mouseover / mouseout事件时,为什么要手动使用hover然后手动mouseout?

出了什么问题:

$('h2').hover(function() {
       var e = $(this);
       if (e.hasClass('main-active')){e.css('color','white');}
    }, function() {
       var e = $(this);
       if (e.hasClass('main-active')){e.css('color','black');}
    });
});

PS:最好只使用$()一次并将其缓存到变量中,这样jQuery就不需要每次都将元素解析为一个对象 - 就像上面的代码一样:var e = $(本)