jquery animate,但不是特定的 li 类
我正在使用 jquery 来更改/动画菜单项的 bg 位置,但如果 li 类处于“活动”状态,我需要它不执行任何操作,但我似乎无法弄清楚如何使用 not 选择器(或即使它适合这种情况?)。这是代码:
<div id="menuHolder">
<ul>
<li class="active"><a href="/">menu 1</a></li>
<li><a href="/">menu 2</a></li>
<li><a href="/">menu 3</a></li>
</ul>
</div>
这是 jquery:
$('#menuHolder ul li a').css({ backgroundPosition: "0px -145px" }).mouseover(function(){
$(this).stop().animate({ backgroundPosition:"(0px 0px)" }, { duration: 500 });
}).mouseout(function() {
$(this).stop().animate({ backgroundPosition:"(0px -145px)" }, { duration: 500 });
});
^^ 这使得所有菜单项 bg 位置发生变化 - 效果很好,我只需要它对所有菜单项执行此操作,除了 #menuHolder ul li.active a
任何帮助将不胜感激:)
I'm using jquery to change/animate bg positions of a menu item, but I need it to not do anything if the li class is "active", but I can't seem to figure out how to use the not selector (or even if it's appropriate for this case?). Here's the code:
<div id="menuHolder">
<ul>
<li class="active"><a href="/">menu 1</a></li>
<li><a href="/">menu 2</a></li>
<li><a href="/">menu 3</a></li>
</ul>
</div>
Here's the jquery:
$('#menuHolder ul li a').css({ backgroundPosition: "0px -145px" }).mouseover(function(){
$(this).stop().animate({ backgroundPosition:"(0px 0px)" }, { duration: 500 });
}).mouseout(function() {
$(this).stop().animate({ backgroundPosition:"(0px -145px)" }, { duration: 500 });
});
^^ this makes all the menu item bg position change - which works well, I just need it to do that on all of them, except for #menuHolder ul li.active a
Any help would be appreciated :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试
$(this).filter(':not(.active)')
或者您可以使用(在鼠标悬停内)
if (!$(this).hasClass('active') ){
try
$(this).filter(':not(.active)')
or you could use (inside the mouseover)
if (!$(this).hasClass('active')) {