Почему диалоговое окно конфликтует с анимацией якоря?

$(function() {

        $('#dialog').dialog({
    		autoOpen: false
    	});

    	$('button').button().click(function(e) {
            $('#dialog').dialog("open")
        });

    });
    $(document).ready(function(){
       $("#menu").on("click","a", function (event) {
           event.preventDefault();
           var id  = $(this).attr('href'),
               top = $(id).offset().top;
           $('body,html').animate({scrollTop: top}, 1500);
       });
   });

Вот код js для диалогового окна и анимации якоря. Проблема в том что анимация не работает, но если я убери код для диалога, то все работает. Почему так?
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 1
yurakostin
@yurakostin
Front-end developer
А какой код вы убираете и начинает работать?

В общем-то, я думаю, что дело в том, что вы допустили небольшую ошибку.
Не нужно использовать jquery везде, где только можно. От этого только путаница.

var id = this.href;
var top = document.getElementById('#'+id).getBoundingClientRect().top;

$('body, html').animate({ scrollTop: top }, 1500)


Если не заработает - пишите, будем разбираться.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы