82

要素のクリックをシミュレートしようとしています。同じ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();

しかし、それは何もしていません

4

8 に答える 8

16

document.createEventここに記載されているものを使用してみてください https://developer.mozilla.org/en-US/docs/Web/API/document.createEvent

クリックをシミュレートする関数のコードは次のようになります。

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);      
}
于 2013-07-10T11:34:14.393 に答える
8

すでに試したコード:

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();
});
于 2013-07-10T11:15:02.733 に答える
2

このコードを使用してクリックします。

$("#gift-close").click();
于 2013-07-10T11:07:55.480 に答える
-3

ここで、これを試してください:

$('#gift-close').on('click', function () {
    _gaq.push(['_trackEvent','voucher_new','cart',$(this).attr('rel')+'-mask_x_button-inaction']);
});
于 2013-07-10T11:16:34.147 に答える