ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の click() が事前のバインドなしでリンクのクリックをトリガーしないのはなぜですか?

JavaScript の click() が事前のバインドなしでリンクのクリックをトリガーしないのはなぜですか?

Susan Sarandon
リリース: 2024-10-22 23:35:29
オリジナル
286 人が閲覧しました

Why Doesn't JavaScript's click() Trigger a Link Click Without Prior Binding?

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート