关于mouseout的jQuery什么都不做?

时间:2011-11-27 12:57:19

标签: javascript jquery javascript-events

我的菜单中有一些效果,效果很好,但这些效果不应该在属于“活跃”类的菜单上触发。我该怎么做?使用eval或类似的东西?

总结一下:如果触发器有一个特殊的类,我想拒绝效果。

4 个答案:

答案 0 :(得分:2)

在每个鼠标事件中,请在.hasClass()声明中使用if()

$('.selector').mouseout(function() {
    if($(this).hasClass('active'))
    {
        return;
    }

    // The rest of your code.
});

在这里,if()检查事件被触发的元素是否具有类active。如果是,则函数return s,不再执行其中的任何代码。

您尚未提供任何代码或HTML,因此这是一般解决方案。请更详细地更新您的问题,以便我给您更好的答案。

答案 1 :(得分:1)

在触发器功能中,只需用

包装代码
if ($(this).not('.active')) {
...
}

答案 2 :(得分:1)

JamWaffles和Cito的方式是最有效的,但也可以像这样做,首先获取类值:

var className = $('.myclass').attr('class');

然后你要检查值

if (className != 'whatever') {

    // animate and stuff etc

}

但就像我说的那样,其他方法更好,所以你不妨使用jQuery的内置功能,例如hasClass - 只显示解决问题的方法不止一种:)

答案 3 :(得分:1)

绑定到(not) active,如下所示:
$('.menuitem:not(.active)').live('mouseout',function(){});