Я новичок в программировании и до сих пор разбираюсь в логике программирования. Я потратил несколько часов, пытаясь упростить этот код, но без сигары. Учитывая тот факт, что в основе программирования лежит упрощение задач, как мне сделать следующий код короче?
var card1 = document.getElementById('card1');
var card2 = document.getElementById('card2');
var card3 = document.getElementById('card3');
var card4 = document.getElementById('card4');
// card 1
card1.addEventListener('mouseenter', function(){
card2.classList.add('blur');
card3.classList.add('blur');
card4.classList.add('blur');
})
card1.addEventListener('mouseleave', function(){
card2.classList.remove('blur');
card3.classList.remove('blur');
card4.classList.remove('blur');
})
// card 2
card2.addEventListener('mouseenter', function(){
card1.classList.add('blur');
card3.classList.add('blur');
card4.classList.add('blur');
})
card2.addEventListener('mouseleave', function(){
card1.classList.remove('blur');
card3.classList.remove('blur');
card4.classList.remove('blur');
})
// card 3
card3.addEventListener('mouseenter', function(){
card1.classList.add('blur');
card2.classList.add('blur');
card4.classList.add('blur');
})
card3.addEventListener('mouseleave', function(){
card1.classList.remove('blur');
card2.classList.remove('blur');
card4.classList.remove('blur');
})
// card 4
card4.addEventListener('mouseenter', function(){
card1.classList.add('blur');
card2.classList.add('blur');
card3.classList.add('blur');
})
card4.addEventListener('mouseleave', function(){
card1.classList.remove('blur');
card2.classList.remove('blur');
card3.classList.remove('blur');
})
Заранее спасибо, Тиаго
РЕДАКТИРОВАТЬ: в конце концов я смог придумать что-то на основе ответа @CertainPerformance, которое соответствовало моим потребностям:
const cards = document.querySelectorAll('.modalidade__card');
const cardsArray = Array.apply(null, cards);
for (let i = 0; i < cardsArray.length; i++) {
cardsArray[i].addEventListener('mouseenter', (e) => {
for (let c = 0; c < cardsArray.length; c++) {
cardsArray[c].classList.add('blur');
};
e.target.classList.remove('blur');
});
cardsArray[i].addEventListener('mouseleave', (e) => {
for (let c = 0; c < cardsArray.length; c++) {
if (cardsArray[c].classList.contains('blur')) {
cardsArray[c].classList.remove('blur');
};
};
});
};
var cards = [card1,card2,card3,card4];
, затем в своих функциях вы можете использоватьcards.filter(currentCard => currentCard != card1 ).forEach(filteredCard => { filteredCard.classList.add('blur') } );
- person Leo   schedule 10.04.2020