JavaScript の click() は事前バインドなしでリンク クリックをトリガーできますか?
jQuery の click() 関数を使用してリンク クリックをシミュレートしようとするときユーザーは、特にイベント ハンドラーが事前にリンクにバインドされていない場合に、動作の不一致を観察しています。事前にバインドせずに 'a' リンクをクエリし、$('a').click() を呼び出しても、ブラウザのネイティブ クリック ハンドラーの予想されるトリガーに反して、明らかにアクションは発生しません。
予期しないイベントの動作
さらに観察すると、次のコードに示すように、イベント ハンドラー自体が空であっても、イベント ハンドラーを設定するとこの異常な動作が消えることがわかります。
$('a').click(function(){return true;}).click();
このメソッドを適用すると、予期されたリンクのクリック。直接クリックされたかのようにリンクされたページに移動します。
説明と代替解決策
ユーザーの最初の観察に反して、この逸脱行為は起こらないと判断しました。イベント ハンドラーをバインドせずに click() を呼び出すと、常にブラウザーのデフォルト アクションがトリガーされる必要があります。そうでない場合は、コード内の他の場所に問題があることを示唆しています。
click() の代わりに、バニラ JavaScript を使用してリンクのクリックを直接シミュレートすることを検討してください。
document.getElementById("a_link").click()
これこのメソッドは jQuery との潜在的な競合を回避し、望ましい動作を保証します。
以上がJavaScript の click() が事前のバインドなしでリンクのクリックをトリガーしないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。