Ваше использование .closest
не правильно, я не думаю.Помните, что .closest
смотрит на себя, затем поднимается по дереву на совпадение.Итак, в вашем случае, он сначала находит себя, а затем (внутри) сам ищет привязку с примененным выбранным классом.(Насколько я понимаю, ваш код должен применять и удалять выбранный класс к себе.)
Вместо этого вы можете попробовать .siblings
.Тем не менее, я бы предложил следующее вместо:
$('a').click(function(e){
// store the current anchor
var $a = $(this);
// add the selected class to this element
$a.addClass('selected');
// look around to links nearby, with the selected class, and remove that class
$a.siblings('a.selected').removeClass('selected');
// prevent further action
e.preventDefault(); return false;
});
Я чувствую, что использование универсального $('a.selected')
или $('.selected')
является слишком широким и может захватывать ссылки на странице, которую вы размещаетене хочуВозможно, я ошибаюсь, но это сохраняет его в текущей части навигации на вашей странице (по крайней мере, в том же контейнере, в котором находятся все эти якоря).