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

    @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();
    })
    Ответ написан
    5 комментариев