cj333
cj333

Reputation: 2619

Simulate click with setTimeout in Javascript

How would I simulate a click event with setTimeout? Something like:

<script>
    window.onload=setTimeout(document.getElementById('mk1').click(),1000);
</script>

<a id="mk1" href="some url">click me</a>

Upvotes: 5

Views: 15694

Answers (2)

Briguy37
Briguy37

Reputation: 8412

document.getElementById('mk1').click() is evaluating when the script first runs. You need to make it into a function and pass that as the first parameter.

Upvotes: 1

casablanca
casablanca

Reputation: 70721

Currently your code calls click() immediately and passes the return value to setTimeout. You instead want to pass a function reference to setTimeout:

window.onload = function() {
  setTimeout(function() {
    document.getElementById('mk1').click();
  }, 1000);
};

Edit: As @ThiefMaster points out, you also want to pass a function to onload; even though it might seem to work otherwise, it wouldn't do what it really should be doing.

Upvotes: 13

Related Questions