我在菜单中有一些效果,效果很好,但是这些效果不应该在属于“active”类的菜单点上触发。我应该怎么做呢?使用eval或者类似的东西吗?总结一下:如果触发器有特殊类,我想拒绝一个效果。
8xiog9wr1#
在每个鼠标事件中,在if()语句中使用.hasClass():
if()
.hasClass()
$('.selector').mouseout(function() { if($(this).hasClass('active')) { return; } // The rest of your code. });
这里,if()检查触发事件的元素是否有active类,如果有,函数return返回,不再执行其中的任何代码。您没有提供任何代码或HTML,因此这是一个常规解决方案。请更新您的问题,提供更多详细信息,以便我可以给您更好的答案。
active
return
qltillow2#
在触发器函数中,只需将代码 Package 为
if ($(this).not('.active')) { ... }
5n0oy7gb3#
JamWaffles和Cito的方法是最有效的,但作为一种替代方法,你也可以这样做,首先获取类值:
var className = $('.myclass').attr('class');
然后您需要检查值
if (className != 'whatever') { // animate and stuff etc }
但是就像我说的,其他方法更好,所以你还不如使用jQuery的内置特性,比如hasClass-只是说明有不止一种方法来解决问题:)
hasClass
c2e8gylq4#
绑定到(not) active,如下所示:$('.menuitem:not(.active)').live('mouseout',function(){});
(not) active
$('.menuitem:not(.active)').live('mouseout',function(){});
4条答案
按热度按时间8xiog9wr1#
在每个鼠标事件中,在
if()
语句中使用.hasClass()
:这里,
if()
检查触发事件的元素是否有active
类,如果有,函数return
返回,不再执行其中的任何代码。您没有提供任何代码或HTML,因此这是一个常规解决方案。请更新您的问题,提供更多详细信息,以便我可以给您更好的答案。
qltillow2#
在触发器函数中,只需将代码 Package 为
5n0oy7gb3#
JamWaffles和Cito的方法是最有效的,但作为一种替代方法,你也可以这样做,首先获取类值:
然后您需要检查值
但是就像我说的,其他方法更好,所以你还不如使用jQuery的内置特性,比如
hasClass
-只是说明有不止一种方法来解决问题:)c2e8gylq4#
绑定到
(not) active
,如下所示:$('.menuitem:not(.active)').live('mouseout',function(){});