Задать вопрос
@ilyasidorchik

Как упростить скрипт с помощью this?

У меня на странице есть фото:
<img src="img/5.jpg" id="comfort1" onclick="scale()">

5a23c86c0e661483617992.jpeg

Я кликаю на него — появляется увеличенное фото:
<div class="imger" id="comfort1zoomed" onclick="scale()">
	<div class="layout-positioner">
		<img src="img/5.jpg">
	</div>
</div>

5a23ca6406b88026636385.jpeg

Кликаю на увеличенное — оно исчезает:
5a23c86c0e661483617992.jpeg

Я только учусь, поэтому делаю это следующим скриптом:
function scale() {
	var img = document.getElementById("comfort1");
	var imgz = document.getElementById("comfort1zoomed");
	if (imgz.style.display != "block") imgz.style.display = "block";
	else imgz.style.display = "none";
}


Как упростить скрипт?

Страница

UPD
В комментариях сказали, что вешать на каждую картинку функцию через HTML — плохой тон. Я почитал о делегировании, переписал скрипт. Почему не работает?
var page = document.getElementById("page");
var imgz = document.getElementById("comfort1zoomed");
page.onclick = function(event) {
	var target = event.target; // где был клик?
	if (target.id == 'comfort1') // клик был на фото c id="comfort1"
		imgz.style.display = "block"; // сделать видимой нужную увеличенную фото
};
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@s-jet
let images = document.querySelectorAll('.container img');

Array.prototype.forEach.call(images, function(el) {
        el.addEventListener("click", function(event) { 
            //делай с картинками все что хочешь
        });  
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы