Simulate a click on an "a" element using javascript / jquery

I am trying to simulate a click on an element. HTML for the same is as follows

<a id="gift-close" href="javascript:void(0)" class="cart-mask-close p-abs" onclick="_gaq.push(['_trackEvent','voucher_new','cart',$(this).attr('rel')+'-mask_x_button-inaction']);" rel="coupon">&nbsp;</a> 

How can I simulate a click on it. I tried

document.getElementById("gift-close").click();

But does nothing

+43
javascript jquery hyperlink click simulate
Jul 10 '13 at 11:04 on
source share
8 answers

Using jQuery: $('#gift-close').trigger('click');

Using JavaScript: document.getElementById('gift-close').click();

+70
Jul 10 '13 at 11:06 on
source share

Try using document.createEvent described here https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent

The code for a function that simulates clicks should look something like this:

 function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var a = document.getElementById("gift-close"); a.dispatchEvent(evt); } 
+12
Jul 10 '13 at 11:34 on
source share

Using jQuery:

  $ ('# gift-close'). click (); 
+9
Jul 10 '13 at 11:06 on
source share

Code you have already tried:

 document.getElementById("gift-close").click(); 

... should work as long as the element actually exists in the DOM at the time of its launch. Some possible ways of providing include:

So:

 $(document).ready(function() { document.getElementById("gift-close").click(); // OR $("#gift-close")[0].click(); }); 
+5
Jul 10 '13 at 11:15
source share

to try:

 document.getElementById("gift-close").onclick(); 

or jQuery:

 $("#gift-close")[0].onclick(); 
+5
Jul 10 '13 at 11:21
source share

Use this code to click:

 $("#gift-close").click(); 
+2
Jul 10 '13 at 11:07
source share

Code snapshot below!

Please take a look at these documents and examples on MDN and you will find the answer. This is the way I would say it.

Create and fire events

Event dispatch (example)

Adapted from the "Dispatch event (example)" - HTML link (simulate a click):

 function simulateClick() { var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if(canceled) { // A handler called preventDefault alert("canceled"); } else { // None of the handlers called preventDefault alert("not canceled"); } } 

Here is how I did it (2017):

Just using MouseEvent .

 function simulateClick() { var evt = new MouseEvent("click"); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if (canceled) { // A handler called preventDefault console.log("canceled"); } else { // None of the handlers called preventDefault console.log("not canceled"); } } 

 document.getElementById("button").onclick = evt => { simulateClick() } function simulateClick() { var evt = new MouseEvent("click"); var cb = document.getElementById("checkbox"); var canceled = !cb.dispatchEvent(evt); if (canceled) { // A handler called preventDefault console.log("canceled"); } else { // None of the handlers called preventDefault console.log("not canceled"); } } 
 <input type="checkbox" id="checkbox"> <br> <br> <button id="button">Check it out, or not</button> 
+1
Oct 23 '17 at 0:02
source share

Here try the following:

 $('#gift-close').on('click', function () { _gaq.push(['_trackEvent','voucher_new','cart',$(this).attr('rel')+'-mask_x_button-inaction']); }); 
-one
Jul 10 '13 at 11:16
source share



All Articles