У меня есть 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
.