我的菜单中有一些效果,效果很好,但这些效果不应该在属于“活跃”类的菜单上触发。我该怎么做?使用eval或类似的东西?
总结一下:如果触发器有一个特殊的类,我想拒绝效果。
答案 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(){});