Just_someone
Just_someone

Reputation: 1293

Javascript automaticly runs onclick function

As I was making a gallery for a webpage I ran into a problem with js automatically running the (next_image) function, after some searching around I found out it was due to the () after the statement. however, I can not for the life of me figure out how else to get the clicked_id to the next_image function.

So my question is: how can I make it so that the function runs only after clicking the button while still sending the clicked_id?

function opencase(clicked_id) {
                document.getElementById("right_arrow").addEventListener("click", next_image(clicked_id));
            }
            function next_image(photoid){
                console.log(photoid);
                photoid++;
                document.getElementById("disp").setAttribute("src", "images/image"+photoid+".jpg");
                console.log(photoid);
            }

Any help will be greatly appreciated :D

Upvotes: 0

Views: 47

Answers (1)

brk
brk

Reputation: 50291

Instead of directly calling the function , call it from the addEventListener callback function

function opencase(clicked_id) {
  document.getElementById("right_arrow").addEventListener("click", function() {
    next_image(clicked_id)
  });
}

function next_image(photoid) {
  console.log(photoid);
  photoid++;
  document.getElementById("disp").setAttribute("src", "images/image" + photoid + ".jpg");
  console.log(photoid);
}

Upvotes: 2

Related Questions