Я пытаюсь написать Javascript, чтобы получить событие click для всех элементов с классом из массива. Все отлично работает, но мне нужно его отключить только до тех пор, пока не будет выполнено второе условие в функции klikej()
. Когда событие click срабатывает, элемент с этим классом не должен быть кликабельным. Я пытался использовать removeEventListener
и / или обрабатывать его с PreventDefaults()
, но ничего не работает. Мне нужно использовать только ваниль Javascript - нет jQuery или что-то еще. Не могли бы вы мне помочь?
poleRandomKaret.forEach(karta => {
document.querySelectorAll(`.${karta}`).forEach(element => {
element.addEventListener('click', event => {
console.log("klik");
klikej(event, element);
});
});
});
function klikej(event, element) {
let kliknuteKarty = document.querySelectorAll('[data-ovoce]');
if (kliknuteKarty.length < 2) {
element.setAttribute('data-ovoce', 'otoceno');
}
kliknuteKarty = document.querySelectorAll('[data-ovoce]');
if (kliknuteKarty.length === 2) {
kliknuteKarty[0].className === kliknuteKarty[1].className ? console.log("yes") : console.log("nope");
kliknuteKarty.forEach(element => {
element.removeAttribute("data-ovoce");
});
}
}
РЕДАКТИРОВАТЬ: На элемент нельзя нажимать, пока не будет выполнено второе условие в функции klikej()
. Я пытаюсь сделать игру памяти, используя ваниль JS. Функция klikej()
устанавливает атрибут данных для элемента, и как только появятся два элемента с одинаковыми атрибутами данных, он выведет на консоль «да». Если это два разных атрибута данных, они должны быть кликабельными снова.