@Alexander9229

Почему не работают якорные переходы на JS, если внутри тега прописать еще один тег?

Есть вот такой скрипт с кнопками.
При клике на кнопку происходит якорный переход к определенной секции.
Но вот беда, внутри кнопки пришлось добавить еще тег (это теперь тег a. содержащий внутри себя тег span)

Если происходит клик по тегу a, тогда происходит переход к нужной мне секции.
НО если клик попадает на тег span, тогда переход НЕ происходит.

Как можно решить эту проблему?

<a href="#form" class="button-fiolet offer-left__button-fiolet button-fiolet--primary animate__animated animate__fadeInUp animate__delay-1s">
                            <span>Записаться на бесплатное пробное занятие</span>
                        </a>


const  menuLinks = document.querySelectorAll( '.offer-left__button-fiolet, .choose__link, .free-lesson__link, .video__button-fiolet' );
    
        for ( let i = 0; i < menuLinks.length; i++ ) {
            menuLinks[i].addEventListener( 'click', function ( event ) {
                event.preventDefault();
        
                const blockId = event.target.getAttribute( 'href' ).substr(1);
                document.getElementById( blockId ).scrollIntoView( {
                    behavior: 'smooth',
                    block: 'start',
                } );
            } );
        }
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Потому что целевым элементом будет уже не <a>. Соответственно, не будет и атрибута href. А у null не будет метода substr. О чём вы должны были узнать сами, из сообщения об ошибке - если бы открыли консоль.

Вместо target следует использовать currentTarget.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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