クリック イベントをトリガーする方法が機能しません。
代わりにHTMLElement.click()を使用します。
HTMLElement.click() メソッドは、要素のマウス クリックをシミュレートします。
サポートされている要素 (タイプの 1 つなど) で click() を使用すると、要素のクリック イベントが発生します。このイベントは、ドキュメント ツリー (またはイベント チェーン) の上位の要素にバブルアップし、それらのクリック イベントを発生させます。1 つの例外: click() メソッドは、実際のマウス クリックが受信されたかのように要素にナビゲーションを開始させません。
したがって、次のように変更します。
$('a.get-plus').trigger('click');
に:
$('a.get-plus').get(0).click();
例:
function zoomInChanged() {
// Zoom in
for (var i = 0; i < 3; i++) {
setTimeout(function () {
$('a.get-plus').get(0).click();
}, i * 1000);
}
}
function zoomIn() {
// Zoom in
for (var i = 0; i < 3; i++) {
$('a.get-plus').trigger('click');
console.log(i);
}
}
console.log('zoomIn:');
zoomIn();
console.log('zoomInChanged:');
zoomInChanged();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class="get-plus" title="zoom in" href="javascript:console.log('Clicked')" style="display: inherit;"> </a>
もっと読む:
jQuery のイベント処理システムは、ネイティブ ブラウザー イベントの上にあるレイヤーです。.on( "click", function() {...} ) を使用してイベント ハンドラーを追加すると、jQuery の .trigger( "click" ) を使用してトリガーできます。これは、jQuery が最初に追加されたときにそのハンドラーへの参照を格納するためです。 .
さらに、onclick 属性内で JavaScript をトリガーします。
.trigger() 関数を使用して、ファイル入力ボックスやアンカー タグのクリックなどのネイティブ ブラウザ イベントを模倣することはできません。これは、これらのイベントに対応する jQuery のイベント システムを使用してアタッチされたイベント ハンドラーがないためです。