У меня есть четыре родственных элемента с классом «ящик». Я использую getElementsByClassName()
с циклом for, чтобы перебирать соответствующий набор элементов и использовать метод addEventListener()
для привязки события mouseover
к каждому элементу.Javascript - событие mouseover/out срабатывает на всех элементах сиблинга в то же время
Проблема я имею, когда я использую .style.display
в обработчик события, и мыши на любом из согласующих элементов, все из предыдущего собрата согласующих элементов изменяют свои значения дисплея.
Если я использую другой метод стиля, например .style.backgroundColor
, все работает нормально. У меня есть googled и youtubed, и я не могу найти решение. Буду признателен за любую помощь, спасибо.
Код:
function hover(eClass) {
var elem = document.getElementsByClassName(eClass);
for (var i=0;i<elem.length;i++) {
elem[i].addEventListener('mouseover', mouseOver);
elem[i].addEventListener('mouseout', mouseOut);
}
function mouseOver() {
//this.style.backgroundColor = 'red';
this.style.display = 'none';
}
function mouseOut() {
//this.style.backgroundColor = 'grey';
}
}
hover('box');
Спасибо за вашу помощь. Я, конечно, несколько расстроен, я сам этого не осознавал. Примером был просто тест, также, если бы моя функция зависания работала по назначению. –