Два клика по кнопке
Доброго времени суток.
Такая проблема - хочу, чтобы по клику на кнопку картинки менялись, а по повторному клику все возвращались на свои места. Первый клик и первый обмен происходят штатно. А вот повтор не работает. Почему? Что не так делаю? const colors = [ ["colo/colZ1/Path_0.png", "colo/colZ2/Path_0.png"], ["colo/colZ1/Path_1.png", "colo/colZ2/Path_1.png"], ["colo/colZ1/Path_2.png", "colo/colZ2/Path_2.png"], ["colo/colZ1/Path_3.png", "colo/colZ2/Path_3.png"] ]; // размещаем картинки 1-ой группы по местам при запуске сайта let img = document.querySelectorAll(".img") for (let i = 0; i < colors.length; i++) { img[i].src = colors[i][0]; img.display }; // меняем картинки на 2-ую группу на местах по клику на bttn let bttn = document.querySelector (".bttn"); // меняем картинки на местах bttn.addEventListener ("click", function () { for (let i = 0; i < colors.length; i++) { img[i].src = colors[i][1]; img.display }; }); // а вот обратного действия ( смена картинок 2-ой группы на картинки 1-ой группы по клику по той же bttn) не происходит bttn.addEventListener ("click", function() { for (let i = 0; i < colors.length; i++) { img[i].src = colors[i][0]; img.display }; }); |
Vahan60,
строка 21 img[i].src = colors[i].reverse()[0]; строку 28 убрать |
Работает. Спасибо огромное.
И сразу же два вопроса-уточнения. 1. Можно ли этот же принцип применить, если необходимо будет менять 3 и более групп картинок? 2. Я получил два вида фрагмента кода. Оба работают. И все же - какой из них правильней/надёжней? let bttn = document.querySelector (".bttn"); bttn.addEventListener ("click", function () { for (let i = 0; i < colors.length; i++) { img[i].src = colors[i].reverse()[0]; img.display }; }); for (let i = 0; i < colors.length; i++) { img[i].src = colors[i][0]; img.display }; let bttn = document.querySelector (".bttn"); bttn.addEventListener ("click", function () { for (let i = 0; i < colors.length; i++) { img[i].src = colors[i].reverse()[0]; img.display }; for (let i = 0; i < colors.length; i++) { img[i].src = colors[i][0]; img.display } }); |
Цитата:
Цитата:
Цитата:
|
Vahan60,
const colors = [ ["colo/colZ1/Path_0.png", "colo/colZ2/Path_0.png"], ["colo/colZ1/Path_1.png", "colo/colZ2/Path_1.png"], ["colo/colZ1/Path_2.png", "colo/colZ2/Path_2.png"], ["colo/colZ1/Path_3.png", "colo/colZ2/Path_3.png"] ]; const img = document.querySelectorAll(".img"); const bttn = document.querySelector(".bttn"); const len = colors[0].length; let index = 0; const changeSrc = index => colors.forEach((arrSrc, k) => img[k].src = arrSrc[index]); changeSrc(index); bttn.addEventListener ("click", function () { index = ++index % len; changeSrc(index) }); |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Вроде разобрался. Спасибо. |
Часовой пояс GMT +3, время: 02:23. |