我在我的菜单中有一些效果,效果很好,但这些效果不应触发属于“活动”类的menupoint。我应该怎么做?使用eval或类似的东西?在mouseout上的jQuery什么都不做?
总结一下:如果触发器有一个特殊的类,我想拒绝一个效果。
我在我的菜单中有一些效果,效果很好,但这些效果不应触发属于“活动”类的menupoint。我应该怎么做?使用eval或类似的东西?在mouseout上的jQuery什么都不做?
总结一下:如果触发器有一个特殊的类,我想拒绝一个效果。
在每一个你的鼠标事件,在if()
语句中使用.hasClass()
:
$('.selector').mouseout(function() {
if($(this).hasClass('active'))
{
return;
}
// The rest of your code.
});
这里,if()
检查该事件上触发的元素是否具有类active
。如果是这样,则功能return
,不在其中执行更多代码。
您还没有提供任何代码或HTML来处理,所以这是一个通用的解决方案。请更详细地更新您的问题,以便我可以给您更好的答案。
在触发功能,只是包装你的代码
if ($(this).not('.active')) {
...
}
JamWaffles和CITO的工作方式,是最有效的,但正如你也可以做这样的选择,首先提取类值:
那么你一定要来检查值
if (className != 'whatever') {
// animate and stuff etc
}
卜牛逼就像我说的,其他的方法更好,所以你不妨使用内置的jQuery的功能,如hasClass
- 只是显示那里有不止一种方法来解决问题:)
你不应该使用“return false;”,只是为了“返回”。如果您不知道期望它们,则返回false值会产生很多副作用,这些副作用会混淆网站上的其他内容。阅读此更多信息:[滥用返回false](http://fuelyourcoding.com/jquery-events-stop-misusing-return-false) – loganfsmyth
地狱是啊,对不起,这绝对是我有史以来最愚蠢的问题之一:) –
@ LoganF.Smyth感谢您的高举。 TIL'return false'不好。我编辑了我的答案来反思。 – Bojangles