ホームページ ウェブフロントエンド jsチュートリアル Jquery バインディング イベント (バインドとライブの違いの紹介)_jquery

Jquery バインディング イベント (バインドとライブの違いの紹介)_jquery

May 16, 2016 pm 05:24 PM
bind live

Jquery でイベントをバインドするには 3 つの方法があります。 クリック イベントを例に挙げます。

(1) target.click(function(){});

(2) target.bind( "click" ,function(){});

(3) target.live("click",function(){});

では、最初の方法がわかりやすいです。実際、これは通常のものと同じです。JS の使用法は、1 つが欠落していることを除いて似ています。

2 番目と 3 番目のメソッドはすべてバインディング イベントですが、大きく異なるため、これを説明することに集中しましょう。 Jquery を使用する場合 このフレームワークは頻繁に使用されるため、この 2 つの違いには特に注意する必要があります。

[バインドとライブの違い]

ライブ メソッドは実際にはバインド メソッドの変形であり、基本的な機能はどちらも要素をバインドするメソッドと同じです。ただし、bind メソッドはイベントを既存の要素にのみバインドでき、JS やその他のメソッドを使用して新しく生成された要素には無効です。live メソッドは、bind メソッドのこの欠点を補うだけであり、使用することもできます。後で生成される要素の場合は、対応するイベントをバインドします。では、ライブ メソッドのこの機能はどのように実装されているのでしょうか?以下でその実装原理について説明します。

ライブ メソッドが、対応するイベントを後から生成される要素にもバインドできる理由は、いわゆる「イベント委任」によるもので、祖先要素にバインドされたイベントを子孫要素でも使用できることを意味します。 。ライブ メソッドの処理メカニズムは、イベントを要素に直接バインドするのではなく、DOM ツリーのルート ノードにバインドすることです。例を挙げて説明します。

コードをコピー コードは次のとおりです。

$(" .clickMe" ).live("click",fn);
$("body").append("
ライブ メソッドをテストする手順
");

この新しい要素をクリックすると、次の手順が実行されます:

(1) クリック イベントを生成し、処理のために div に渡します

(2) div に直接バインドされているイベントがないため、イベントは DOM ツリー

に直接バブルします。 (3) イベントは DOM ツリーのルート ノードに到達するまでバブルし続けます。デフォルトでは、ルートノードがバインドされている このクリックイベントを設定します

(4) ライブでバインドされたクリックイベントを実行します

(5) バインドされたイベントのオブジェクトが存在するかどうかを検出し、必要があるかどうかを判断しますバインドされたイベントの実行を続行します。イベント オブジェクトの検出は、

$(event.target).closest('.clickMe') が一致する要素を見つけることができるかどうかを検出することで実現されます。

(6) (5)のテストにより、イベントにバインドされたオブジェクトが存在する場合、バインドされたイベントが実行されます。

ライブメソッドはイベント発生時にのみイベントにバインドされたオブジェクトが存在するかどうかを検出するため、後から追加される要素やイベントバインディングをライブメソッドで実装することができます。対照的に、bind はイベントのバインド フェーズ中にイベントがバインドされる要素が存在するかどうかを判断し、親ノードではなく現在の要素にのみバインドします。

上記の分析によれば、ライブの利点は非常に大きいのに、なぜバインドメソッドを使用する必要があるのでしょうか? jquery が live メソッドを使用してバインドを置き換えるのではなく、バインド メソッドを保持する理由は、場合によっては live がバインドを完全に置き換えることができないためです。主な違いは次のとおりです:

(1) バインド メソッドは任意の JavaScript イベントをバインドできますが、ライブ メソッドは jQuery1.3 の click、dblclick、keydown、keypress、keyup、mousedown、mousemove、mouseout のみをサポートします。 jQuery 1.4.1 では、focus および青色の

イベントもサポートされています (バブル可能な、より適切な focusin および focusout にマップされます)。さらに、jQuery 1.4.1 では、ホバー (「mouseenter Mouseleave」にマッピング) もサポートされます。

(2) live() は、DOM トラバーサルで見つかった要素を完全にはサポートしません。代わりに、常にセレクターの直後に .live() メソッドを使用する必要があります。

(3) 要素がライブ メソッドを使用してイベントをバインドする場合、イベントの配信やバブリングを防止したい場合は、関数内で false を返す必要があります。stopPropagation() を呼び出すだけでは防止できません。イベント配信またはバブリング
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 致命的エラーの解決策: 未定義関数 ldap_bind() の呼び出し PHP 致命的エラーの解決策: 未定義関数 ldap_bind() の呼び出し Jun 22, 2023 pm 11:37 PM

PHP を使用して Web アプリケーションを開発する場合、多くの場合、アプリケーションのアクセスを保護するために LDAP 認証を使用する必要があります。ただし、場合によっては、PHP の LDAP 機能を使用して認証を実装しようとすると、次のエラー メッセージが表示されることがあります。このエラー メッセージは通常、アプリケーションが ldap_bind() 関数を呼び出したときに発生します。

Linuxバインドとは何ですか Linuxバインドとは何ですか Mar 25, 2023 am 09:39 AM

Linux のバインドは、キーボード キーとその関連機能を表示または設定するために使用されるコマンドです。バインド コマンドを使用すると、キーの組み合わせとその機能を理解したり、使用するキーの組み合わせを指定したりできます。その使用構文は「bind [ -dlv][ -f <...>][-m <...>][-q <...>]"。

0x87dd0019 Xbox ログイン エラーを修正する方法 0x87dd0019 Xbox ログイン エラーを修正する方法 Mar 22, 2024 pm 02:30 PM

この記事では、Xbox Live への接続または Xbox One へのログイン時に接続タイムアウトの問題を引き起こす 0x87dd0019 Xbox ログイン エラーを修正する方法を説明します。 Xbox のエラー コード 0x87e00019 とは何ですか? Xbox 本体でゲームをインストールまたは更新するときにエラー コード 0x87e00019 が発生した場合は、Xbox ハード ドライブの記憶域スペースが不足しているか、ほぼいっぱいである可能性があります。この問題を解決するには、ストレージ領域を解放する必要があります。同時に、Xbox Live サービスのステータスも確認する必要があります。このエラーは Xbox サーバーの問題が原因である可能性があります。これらのヒントを使用して 0x87dd0019 Xbox ログイン エラーを修正する方法

win10 で Xbox Live にログインできない場合はどうすればよいですか? Win10 が Xbox Live ソリューションにログインできない win10 で Xbox Live にログインできない場合はどうすればよいですか? Win10 が Xbox Live ソリューションにログインできない Feb 15, 2024 am 11:51 AM

Xbox は Microsoft 独自のネットワーク サービス センターです。多くのユーザーは、Win10 コンピューターでプレイ中に Xbox Live にログインできないことに気づきました。このサイトはwin10でxboxliveにログインできない問題の解決策をユーザーに丁寧に紹介しましょう。 Windows 10 で xboxlive にログインできない問題の解決策: 1. 「win+R」ショートカット キーでファイル名を指定して実行ウィンドウを開き、「services.msc」と入力し、Enter キーを押して開きます。 2. [サービス] ウィンドウ インターフェイスに入ったら、右側で [xboxlive 認証マネージャー] を見つけ、ダブルクリックして開きます。

JS でのバインドの実装と使用 JS でのバインドの実装と使用 Feb 24, 2024 pm 01:33 PM

JS でのバインドの実装と使用 JavaScript では、バインドは非常に便利な関数メソッドです。新しい関数を作成し、その関数が呼び出されるときに、その関数が特定の this 値を持ち、指定されたパラメーターを渡すことができることを保証します。バインド メソッドは次のように定義されます: functionbind(fn,obj,...args){returnfunction(...args2){return

プレミアはライブを意味しますか? プレミアはライブを意味しますか? Apr 04, 2025 am 12:07 AM

「プレミア」と「ライブ」はビデオ制作に異なる意味を持っています。「プレミア」とは、最初のリリースまたはプレミアを指し、「ライブ」とはリアルタイムでライブブロードキャストを指します。 1。「Premiere」は、事前に録音されたコンテンツの最初の表示です。 2. Adob​​e PremiereProでプレミアを設定するには、編集、編集、レンダリング、プレミア時間のスケジュールが含まれます。 3. Pythonスクリプトを使用して、ビデオプレミアをスケジュールします。 4.重要な手順には、エクスポート設定、時間同期、プレビューテストが含まれます。 5。課題には、パフォーマンスの問題、時間管理、プラットフォームの互換性が含まれます。

Xbox コンテンツのダウンロード時のエラー 0x87e107d1 Xbox コンテンツのダウンロード時のエラー 0x87e107d1 Feb 22, 2024 am 09:50 AM

本体に Xbox コンテンツをダウンロード中にエラー コード 0x87e107d1 が発生した場合、問題を解決するにはいくつかの手順が必要になる場合があります。通常、このエラーは、ユーザーが Xbox ゲーム コンソールにコンテンツをダウンロードしようとすると表示されます。次に、この問題を解決し、必要なコンテンツを確実にダウンロードできるようにするいくつかの方法を検討します。 Xbox コンテンツをダウンロードするときにエラー 0x87e107d1 を修正する Xbox コンテンツをダウンロードするときにエラー 0x87e107d1 が発生する場合は、次の修正を使用して問題を解決します。 Xbox Live サービスのステータスを確認する インターネット接続を確認する Xbox 本体の電源をオフにしてからオンにする コンテンツを再ダウンロードしてみる プロフィールを削除して追加する 始めましょう。 1] Xboxを確認してください

Xbox パーティー チャットの音声が中断される、または機能しない [修正] Xbox パーティー チャットの音声が中断される、または機能しない [修正] Feb 19, 2024 am 11:18 AM

Xbox Party の使用中にチャットの音声が途切れたり機能しないという問題が発生した場合は、インターネット接続が不安定であるか、Xbox Live サービスの障害が原因である可能性があります。この記事は、これらの問題を解決し、Xbox Party ゲーム チャットをスムーズに実行できるようにするのに役立ちます。 Xbox パーティー チャットの音声が途切れたり機能しない問題を修正する Xbox パーティー チャットの音声が途切れたり機能しない問題を修正するには、次の修正を使用します。 XboxLive サービスのステータスを確認する インターネット接続を確認する Xbox 本体の電源をオフにしてから再度オンにする NAT の種類を確認する パーティーから退出して再参加する工場出荷時 Xbox 本体をリセットして、始めましょう。 1] XboxLive サービスのステータスを確認し、トラブルシューティングを続行します

See all articles