i am creating a webpage page in which i have a div containig an image the img tag has a class of innerMainImg. i have four images in an "images" folder within my project. the images are "prot1, prot2, prot and prot4". i tried to ad a click event listener to my innerMainImg so that when i click on the first image (prot1.jpg), the image then changes to prot2 and when i click again, it prot2.jpg changes to prot3.jpg and so on. but my code is not really working. how can i fix that ?
var imgNumber = 1;
for(i = 1; i < 5; i++){
imgNumber = i;
var actualImage = "images/prot" + imgNumber + ".jpg";
document.querySelector("#mainImg .innerMainImg").addEventListener("click", imgNext);
function imgNext(){
document.querySelector("#mainImg .innerMainImg").setAttribute("src", actualImage);
};
}
The approach you're using - looping to create multiple event handlers isn't quite right. A better approach would be to create a single event handler and then increment the index value of the image within that, something like this: