Задать вопрос
junk1114
@junk1114
Web-программист

Какие недостатки в этом коротком скрипте на jQuery?

Скрипт для плавной навигации по ссылкам-якорям:
$('a[href^="#"]:not(a[href="#"])').click(function(){
    var link = $(this).attr('href').substr(1);
    var anchor = $('a[name='+link+']');
    var top = anchor.offset().top;
    $("body").animate({scrollTop: top}, 500);
    return false;
});
  • Вопрос задан
  • 2379 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@raven
1. Лучше использовать on вместо click.
2. Лучше подписаться на click на body. Если ссылок будет много, то и подписок будет много.
3. Не люблю $(this). Используйте $(e.target) (или currentTarget).
4. Событие лучше отменить с помощью e.preventDefault().
5. По name вы anchor ищете: его хорошо бы в кавычки обернуть. И ещё anchor это не обязательно ссылка.

$(document.body, 'a[href^="#"]:not(a[href="#"])', function(e) {
var link = $(e.target).attr('href').substr(1); // или currentTarget
var anchor = $('[name="'+link+'"]');
var top = anchor.offset().top;
$("body").animate({scrollTop: top}, 500);
e.preventDefault();
})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы