jQuery对mouseout不执行任何操作?

vxbzzdmp  于 2022-12-03  发布在  jQuery
关注(0)|答案(4)|浏览(149)

我在菜单中有一些效果,效果很好,但是这些效果不应该在属于“active”类的菜单点上触发。我应该怎么做呢?使用eval或者类似的东西吗?
总结一下:如果触发器有特殊类,我想拒绝一个效果。

8xiog9wr

8xiog9wr1#

在每个鼠标事件中,在if()语句中使用.hasClass()

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

    // The rest of your code.
});

这里,if()检查触发事件的元素是否有active类,如果有,函数return返回,不再执行其中的任何代码。
您没有提供任何代码或HTML,因此这是一个常规解决方案。请更新您的问题,提供更多详细信息,以便我可以给您更好的答案。

qltillow

qltillow2#

在触发器函数中,只需将代码 Package 为

if ($(this).not('.active')) {
...
}
5n0oy7gb

5n0oy7gb3#

JamWaffles和Cito的方法是最有效的,但作为一种替代方法,你也可以这样做,首先获取类值:

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

然后您需要检查值

if (className != 'whatever') {

    // animate and stuff etc

}

但是就像我说的,其他方法更好,所以你还不如使用jQuery的内置特性,比如hasClass-只是说明有不止一种方法来解决问题:)

c2e8gylq

c2e8gylq4#

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

相关问题