Ошибка в скрипте при переходе на якоря в HTML документе

257
01 мая 2017, 02:18

Вот есть рабочий скрипт для якорей на странице:

$(document).ready(function () {
    $(function () {
        $("a[href^='#']").click(function () {
            var _href = $(this).attr("href");
            $("html, body").animate({scrollTop: $(_href).offset().top + "px"});
            return false;
        });
    });
});

Однако, в подвале фиксированная кнопка "вверх" http://joxi.ru/Dr8nabLCw73l26 при нажатии на нее происходит скрол вверх, к началу страницы, а скрипт при нажатии ругается ошибкой: Uncaught TypeError: Cannot read property 'top' of undefined at HTMLAnchorElement. (common.js:5) at HTMLAnchorElement.dispatch (jquery.js:3) at HTMLAnchorElement.r.handle (jquery.js:3)

Я даже пробовал сделать скрипт "наоборот":

    $(function () {
        $("a[href^='#to-top']").click(function () {
            var _href = $(this).attr("href");
            $("html, body").animate({scrollBottom: $(_href).offset().bottom + "px"});
            return false;
        });
    });

Без результата...

Answer 1

Согласно вашему коду, у вас на странице должен быть элемент с id, начинающимся на to-top (или что там у вас прописано в атрибуте href?)

<div id="to-top">...</div

В противном случае jQuery не может найти нужный элемент по селектору $(_href) другими словами по $("#to-top")

READ ALSO
вопрос про CSS в многостраничном сайте

вопрос про CSS в многостраничном сайте

Я делаю сайт с несколькими страницами (контакты, галерея, и тп) И поскольку это мой первый сайт, у меня вопрос, как стоит поступать, привязывать...

258
Реализовать конструкцию IF ELSE mysql

Реализовать конструкцию IF ELSE mysql

Как сделать так чтобы если id_service=1 то значение было (hours*200), а если id_service=2 то значение (hours*250)?

322
Перенос скриптов SQL в mysql

Перенос скриптов SQL в mysql

Создавал большую БД в SQL Server на локальном ПК, когда планировался сервер с WindowsПланы изменились и было решено использовать удаленный Linux сервер

248
Error Code: 1111 Invalid use of group function

Error Code: 1111 Invalid use of group function

Ребята как мне реализовать этот вариант :

315