Javascript document.queryselectorAll после изменений класса - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть queryselectorAll, который без проблем работает при загрузке.

const Configurator = (() => {
  var obj = [];

  const setConfig = function() {
        // do things and change a few classes of elements
  };



  const initEventListeners = function() {

     const configuratorCard = document.querySelectorAll('.configurator-card.configurator-card__valid');
     Array.from(configuratorCard, (card) => {
              card.addEventListener('click', setConfig);
     });

  };

  const init = function() {
    initEventListeners();
  };

  return {
    init: init
  };

})();

Внутри функции setConfig есть несколько обновлений классов, одним из которых является то, что configurator- card__valid удаляется из нескольких элементов.

Однако эти элементы по-прежнему реагируют на этот селектор после того, как я это сделаю. Я попытался reInitEventListeners, однако, это не сработало.

РЕДАКТИРОВАТЬ: Чтобы быть более понятным.

Я нажимаю на элемент, который имеет оба класса: configurator-card И configurator-card__valid, затем это должно вызвать setConfig. Что это делает! Внутри setConfig он проходит валидацию, а на некоторых элементах configurator-card__valid удаляется. Это должно привести к тому, что когда люди нажимают на элемент, который не имеет класса configurator-card__valid, EventListener больше не запускается. Тем не менее, он все еще вызывает setConfig, даже если там нет класса configurator-card__valid.

...