Что я могу использовать для привязки ссылок на странице, кроме элементов привязки?

#javascript #html #jquery

#язык JavaScript #HTML #jquery

Вопрос:

Первоначально, чтобы быстро перейти к другому блоку, я использовал

 lt;a href="#comments"gt;  

И код javascript для прокрутки

 $(document).ready(function() {  $('a[href*="#"]').on('click', function (e) {  e.preventDefault();    $('html, body').animate({  scrollTop: $($(this).attr('href')).offset().top  }, 500, 'linear');  }); });  

Но так получилось, что в одном из случаев я не могу использовать a href на странице, и я ищу альтернативу

Я использую это

 lt;span onclick="window.location.href='#comments';"gt;  

Это работает нормально, но код прокрутки применяется только к a href

Чтобы сделать прокрутку в моем случае, нужно ли мне писать для этого отдельный код или я могу закончить существующий? Внезапно мне также понадобился старый код, и мне не нужно его полностью переписывать.

Комментарии:

1. Та же логика JS может работать для любого элемента. Просто измените $('a[href*="#"') на $('span') , я бы предложил добавить к вам класс span , чтобы избежать жадных совпадений. Еще одно замечание заключается в том, что использование span элемента для перенаправления страницы не рекомендуется по причинам доступности.

2. @RoryMcCrossan и что можно использовать вместо span этого ?

3. Практически любой элемент, который получает click событие.

4. в любом случае, я просто попробовал так $('span') и получил ошибку Uncaught TypeError: Cannot read properties of undefined (reading 'top') в этой строке scrollTop: $($(this).attr('href')).offset().top @RoryMcCrossan

5. Ну, это потому span , что у а нет href атрибута… используйте data-href вместо этого, например.,