2013-05-08 104 views
1

所以,我相当新的jQuery ..我正在一个网站上工作,与Twitter Bootstrap。现在我想让我的菜单按钮在你弹出时弹出。 mouseenter。这工作。不过,我想在什么时候回到原来的状态。 mouseleave。谁能帮忙?为什么我的jQuery .mouseleave动画不起作用?

$('.nav-pills li a').not('.nav-pills .active a').mouseenter(function(){ 
    console.log('enter'); 
    $(this).animate({ 
     height: '+=5px', 
     opacity: '1' 
    }, 300); 
}); 
$('.nav-pills li a').not('.nav-pills .active a').mouseleave(function(){ 
    console.log('leave'); 
    $(this).animate({ 
     height: '-=5px', 
     opacity: '0.5' 
    }, 300); 
}); 

编辑:对不起“回合的.. HTML到这里:

<div class="container" id="menu"> 
    <div class="tabbable fixed-top"> 
      <ul class="nav nav-pills"> 
       <li class="active"><a href="#">Home</a></li> 
       <li><a href="#">Restaurant</a></li> 
       <li><a href="#">Hotel</a></li> 
       <li><a href="#">Feesten & vergaderen</a></li> 
       <li><a href="#">Nieuwsbrief & activiteiten</a></li> 
       <li><a href="#">Omgeving & links</a></li> 
       <li><a href="#">Revieuws/Gastenboek</a></li> 
      </ul> 
    </div> 
</div> 
+2

什么是'.nav-pills','li' '.active' ..?你需要显示你的'html'也 – 2013-05-08 10:31:10

+0

使用鼠标悬停而不是鼠标输入事件,请提供你的html,以便我可以为你做演示。 – 2013-05-08 10:35:53

+0

使用提供的代码,我创建了一个[jsFiddle demo](http://jsfiddle.net/sqmQr/),但它看起来像我期望的那样工作。也许你可以修改它(添加你的CSS,任何其他代码等)来重现你所看到的问题? – 2013-05-08 10:58:25

回答

0

- 你的代码做工精细

- 只是改变不透明度: '1' 鼠标离开事件

- 试试这个吧

$('.nav-pills li a').not('.nav-pills .active a').hover(function() { 
    $(this).animate({ 
     height: '+=5px', 
     opacity: '0.5' 
    }, 300); 
}, function() { 
    $(this).animate({ 
     height: '-=5px', 
     opacity: '1' 
    }, 300); 
}); 
+0

这就是我的想法。但.mouseleave没有显示..任何想法? – Thomas 2013-05-08 10:49:48

+0

与悬停事件,你会注意到事件的变化 – user2351467 2013-05-08 10:53:12

+0

也无法正常工作..当我使用检查元素,数字显示它的动画,但在屏幕上它只是在瞬间自然舞台。这与css有什么关系? – Thomas 2013-05-08 10:54:29