TransWikia.com

Как сделать плавный скролл для динамически сгенерированного radio?

Stack Overflow на русском Asked on December 30, 2021

Как сделать плавный скролл к определенному блоку для динамически сгенерированного radio при его активации?
Для обычных, которые по-умолчанию заданы через HTML, работает прикрепленный код, но когда его генерирует JS, это не срабатывает.

(() => {
  const handler = evt => {
    if (evt.target.checked)
      tabs.scrollIntoView({ block: 'start', behavior: 'smooth' });
  };
  const tabs = document.querySelector('.content');
  for (let cbox of document.querySelectorAll('.downers'))
    cbox.addEventListener('change', handler);
})();

One Answer

Поставьте прослушку событий на обертку Ваших input'ов и проверяйте куда пришелся клик:

const handleClick = event => {
   if (event.target.tagName.toLowerCase() === "input") {
      // ... ваша логика
      // например scroll до конкретного <input />
      // if (event.target.checked) {
      //    event.target.scrollIntoView({ block: "start", behavior: "smooth" })
      //}
      console.log(event.target) // input на который пришелся клик
   }
}

document.querySelector(".wrapper").addEventListener("click", handleClick, false)

Это даст Вам возможность прослушивать события в input'ах которые были добавлены динамически.

Answered by Vasily on December 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP