使用javascript / jquery模拟点击“a”元素

我试图模拟一个元素上的点击。 HTML的相同如下

<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> 

我怎样才能模拟点击它。 我努力了

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

但它没有做任何事情

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

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

尝试使用这里描述的document.createEvent https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent

模拟点击的function代码应该如下所示:

 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); } 

使用jQuery:

  $( '#礼品接近')点击()。 

你已经试过的代码:

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

…应该工作,只要该元素实际存在于您的DOM运行时。 一些可能的方法来确保包括:

  1. 从窗口的onload处理程序运行您的代码。 http://jsfiddle.net/LKNYg/
  2. 如果您使用jQuery,请从文档就绪处理程序运行您的代码。 http://jsfiddle.net/LKNYg/1/
  3. 将代码放在源html中的元素之后的脚本块中。

所以:

 $(document).ready(function() { document.getElementById("gift-close").click(); // OR $("#gift-close")[0].click(); }); 

尝试:

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

或jQuery:

 $("#gift-close")[0].onclick(); 

使用此代码来点击:

 $("#gift-close").click(); 

下面的代码片段!

请在MDN上查看这些文档和示例,并find答案。 这就是我想说的做法。

创build和触发事件

派遣活动(示例)

取自“调度事件(示例)” – HTML-link(模拟点击):

 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"); } } 

这是我将如何做(2017 ..):

只需使用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> 

在这里,试试这个:

 $('#gift-close').on('click', function () { _gaq.push(['_trackEvent','voucher_new','cart',$(this).attr('rel')+'-mask_x_button-inaction']); });