Есть 4 кнопки сделанные из - div с классом ".menu_img_box", в каждый из них вложен .
При нажатии на кнопку, у картинки на этой кнопке меняется атрибут src.
ResetSelectedItem - функция для сбора уже нажатых кнопок.
SetSelectedItem - функция изменения атрибута src.
function addListener(event, obj, fn) {
if (obj.addEventListener) {
obj.addEventListener(event, fn, false);
} else {
obj.attachEvent("on"+event, fn);
}
}
function ResetSelectedItem () {
var elements = document.querySelectorAll('.menu_img_box > img');
for (var i = 0; i < elements.length; i++) {
elements[i].src = elements[i].src.replace('_r.png', '.png');
};
};
function SetSelectedItem (Elem) {
Elem.firstElementChild.src = Elem.firstElementChild.src.replace('.png', '_r.png');
};
window.onload = function () {
var slideIndex = 1;
var ImgBoxElem = document.querySelectorAll('.menu_img_box');
for(Elem of ImgBoxElem) {
addListener('click', Elem, function (e) {
ResetSelectedItem();
SetSelectedItem(Elem);
});
};
};
Сейчас происходит следующее:
При нажатии на кнопку, отрабатывает сброс, и функция установки атрибута применяется на 4-ую кнопку.
Что не правильно, т.к. нужно на конкретную кнопку.
если в функцию вместо "Elem" я буду передавать e.target, она отработает, но тут почему-то начинается интересное. Отрабатывает click только по самому блоку div, если я попадаю по иконке (img) в div'e - клик не срабатывает.
Что делать? Как сделать что бы менялось при клике как надо и кликало по всей кнопке?