Я пытаюсь сделать так, чтобы при наведении элемента li фоновая позиция изменялась (что прекрасно работает), а при щелчке она оставалась во втором активном состоянии (вообще не работает). Это работает, если в HTML класс «активный» уже применен к элементу. Я пробовал почти все, о чем я мог думать, и искал в течение долгого времени, но, похоже, не могу понять это.
HTML:
<div id="navigation">
<ul>
<li><a href="#">Mission</a></li>
<li class="active"><a href="school.html">School</a></li>
<li><a href="programs.html">Programs</a></li>
<li><a href="instructors.html">Instructors</a></li>
<li><a href="contact.html">Contact Us</a></li>
<li class="bumpR"><a href="store.html">Store</a></li>
<li><a href="blog.html">Blog</a></li>
</ul>
</div> <!-- end navigation -->
JQuery:
$('#navigation li').not('li.active').mouseover(function() {
$(this).stop().animate({backgroundPosition: '0px -40px'}, 500);
// $(this).children('a').animate({opacity: .1}, 50);
$(this).children('a').css({ 'color': 'black'});
// $(this).children('a').delay(300).animate({opacity: 1}, 350);
})
$('#navigation li').not('li.active').mouseleave(function() {
$(this).stop().animate({backgroundPosition: '0px 0'}, 250);
//$(this).children('a').animate({opacity: .1}, 25);
$(this).children('a').css({ 'color': 'white'});
// $(this).children('a').delay(150).animate({opacity: 1}, 175);
});
$('#navigation li').click(function() {
$(this).addClass("active");
});
Так, например, при наведении курсора на «Школа» правильно не будет анимироваться положение фона, когда мышь уходит, но при нажатии «Миссия» добавится класс «активный», функция выхода из мыши все еще работает.
Есть идеи, почему?