Я делаю навигацию для веб-сайта и хотел бы, чтобы кнопки вели себя так:
- Разместите активную кнопку на 40 пикселей выше остальных.
- Переместите кнопки на 10 пикселей выше при наведении, если это не активная кнопка.
- При нажатии кнопки удалить активный класс со всех кнопок, переместить их все в исходное положение, добавить активный класс к нажатой кнопке, переместить нажатую кнопку на 40 пикселей выше.
Это мой код jQuery:
$(document).ready(function(){
$('#navigation a').not(".active")
.mouseover(function(){
$(this).stop().animate(
{top:"-10px"},
{duration:200}
)
})
.mouseout(function(){
$(this).stop().animate(
{top:"0px"},
{duration:200}
)
})
.click(function(){
$('#navigation a.active').animate(
{top:"0px"},
{duration:200}
)
$('#navigation a').removeClass("active");
$(this).addClass("active");
$(this).stop().animate(
{top:"-40px"},
{duration:200}
)
})
});
Кажется, все работает, и классы даются и удаляются правильно. Единственная проблема заключается в том, что метод not() продолжает блокировать начальную активную кнопку, а не те, которые получили класс позже с помощью addClass().
active
. Не те элементы, которые вы позже отдадите классуactive
. - person putvande   schedule 17.04.2014.on
для регистрации обработчиков событий (см. обсуждение в документах по API в устаревшем.live
а>. - person collapsar   schedule 17.04.2014if($(this).hasClass('active')) return;
(и удалите часть фильтрацииnot()
) - person A. Wolff   schedule 17.04.2014