jQuery.on()関数の使用例を詳しく解説
on() 関数は、イベント処理 関数を指定された要素の 1 つ以上のイベントにバインドするために使用されます。
さらに、追加の必要なデータをイベント ハンドラー関数に渡すこともできます。
jQuery 1.7 以降、on() 関数はイベント ハンドラーをバインドするために必要なすべての関数を提供し、bind()、delegate()、live() などの以前のイベント関数を均一に置き換えるために使用されます。
on() は、ターゲット要素への直接のバインディング イベントをサポートし、ターゲット要素の祖先要素への委任されたバインディングもサポートします。イベントデリゲーションバインディングモードでは、on()関数実行後に新たに追加された要素であっても、条件を満たしていればバインドされたイベントハンドリング関数が有効となります。
さらに、この関数は複数のイベント ハンドラーを同じ要素および同じイベント タイプにバインドできます。イベントがトリガーされると、jQuery はバインドされたイベント処理関数をバインドの順序で実行します。
on() 経由でバインドされたイベントを削除するには、off() 関数を使用します。イベントを添付する場合は、イベントを 1 回だけ実行し、その後イベント自体を削除するには、one() 関数を使用します。
この関数はjQueryオブジェクト(インスタンス)に属します。
構文
この関数はjQuery 1.7で追加されました。主に次の 2 つの使用形式があります。
使用方法 1:
jQueryObject.on( events [, selector ] [, data ], handler )
使用方法 2:
jQueryObject.on( eventsMap [, selector ] [ , data ] )
パラメータ
パラメータの説明
events 文字列型 スペースで区切られた 1 つ以上のイベント タイプと、オプションの namespace ( "click"、"focus click"、"keydown.myPlugin" など)。
eventsMap オブジェクト タイプは Object オブジェクト で、その各属性はイベント タイプとオプションの名前空間 (パラメーター イベント) に対応し、属性値はバインドされたイベント処理関数 (パラメーター ハンドラー) に対応します。
selector オプション/文字列型 どの子孫要素がバインドされたイベントをトリガーできるかを指定するために使用される jQuery セレクター。このパラメーターが null または省略された場合、現在の要素自体がイベントにバインドされていることを意味します (イベント ストリームが現在の要素に到達できる限り、実際のトリガーは子孫要素である場合もあります)。
data オプション/イベントのトリガー時に、event.data を通じてイベント処理関数に渡す必要がある任意のタイプのデータ。
ハンドラー関数型で指定されたイベント処理関数。
パラメータイベントのオプションの名前空間については、以下のサンプルコードを参照してください。
パラメーター セレクターに関しては、単純に次のように理解できます: パラメーターが null に等しいか省略された場合、イベントは現在一致する要素にバインドされ、それ以外の場合、イベントは子孫の中のセレクターに一致する要素にバインドされます。現在一致する要素の要素。
パラメーター ハンドラー内の this は、現在一致する要素の子孫要素のうち、イベントをトリガーする DOM 要素を指します。セレクター パラメーターが null であるか省略されている場合、これは現在一致する要素 (つまり、要素) を指します。
on() は、現在のイベントを表す Event オブジェクトというパラメーターもハンドラーに渡します。
パラメータハンドラーの戻り値は、DOMネイティブイベント処理関数の戻り値と同じ効果があります。たとえば、「submit」(フォーム送信) イベントのイベント ハンドラーは false を返し、フォームが送信されないようにします。
イベント処理関数ハンドラーが false 値のみを返す場合は、ハンドラーを直接 false に設定できます。
戻り値
on()関数の戻り値はjQuery型であり、現在のjQueryオブジェクトそのものを返します。
重要な注意事項:
セレクター パラメーターが渡された場合、on() 関数はイベント ハンドラーを現在の jQuery オブジェクトに一致する要素にバインドするのではなく、セレクター パラメーターに一致する子孫要素内の要素にバインドします。関数。 on() 関数は、イベントをこれらの子孫要素に 1 つずつ直接バインドするのではなく、現在の jQuery オブジェクトの一致する要素に処理を委任します。 DOM レベル 2 のイベント フロー メカニズムにより、子孫要素セレクターがイベントをトリガーすると、イベント フローが現在の一致する要素に渡されると、そのイベントはすべての祖先要素に渡されます。イベントがトリガーされると、その要素がセレクターと一致すると、jQuery はイベントをキャプチャし、バインドされたイベント ハンドラーを実行します。
簡単に言うと、クリック イベント ハンドラー関数をページ上のすべての
タグにバインドしたい場合は、クリック イベント ハンドラー関数を各 P タグに個別に直接バインドできます。例:
// クリック イベント ハンドラー関数ハンドラーをすべての P 要素に個別にバインドします
$("p").on("click", handler);
これらの P タグの共通の祖先をバインドすることもできますイベント委任メカニズムは要素にバインドされており、DOM のイベント バブリング メカニズムを使用して委任処理を統合します。要素のクリック イベントをトリガーすると、JS は要素とその「親」要素、「祖父」要素に通知します。これらの要素にクリック イベント ハンドラーがバインドされている場合は、それらの要素が実行されます。順序。
// クリック イベント処理関数ハンドラーを body 要素にバインドします。クリック イベントがその子孫の P 要素によってトリガーされる場合、ハンドラーを実行します
。$(document.body).on("click", "p", handler);
在这里的示例中,事件委托机制就是,我们不为每个P元素直接绑定click事件处理函数,而是委托给其某个公共的祖辈元素(此处示例中为document.body),"告诉"他:如果接收到了click事件触发通知,并且这个click事件是由我们这些P元素其中之一触发的,就执行祖辈元素上委托绑定的事件处理函数。
注意:"focus"、"blur"等部分事件不支持冒泡,使用事件委托机制将无效。不过,他们一般也有对应的支持冒泡的事件。例如与"focus"对应的"focusin",与"blur"对应的"focusout"。此外,我们也可以使用event.stopPropagation()方法,让当前触发的事件停止冒泡。
示例&说明
以点击事件("click")为例,以下是jQuery中事件函数的常规用法(某些函数也存在其它形式的用法,此处暂不列出):
// 这里的选择器selector用于指定可以触发事件的元素
// 这里的选择器ancestor应是selector的祖辈元素,selector触发的事件可以被其祖辈元素在事件流中捕获,从而以"代理"的形式触发事件。
// jQuery 1.0+ (1.4.3+支持参数data)
$("selector").click( [ data ,] handler );
// jQuery 1.0+ (1.4.3+支持参数data)
$("selector").bind( "click" [, data ], handler );
// jQuery 1.3+ (1.4+支持参数data)
$("selector").live( "click" [, data ], handler );
// jQuery 1.4.2+
$("ancestor").delegate( "selector", "click" [, data ], handler );
// jQuery 1.7+
$("ancestor").on( "click", "selector" [, data ], handler );
请参考下面这段初始HTML代码:
CodePlayer
专注于编程开发技术分享
http://www.365mini.com
要素のクリック イベントをバインドします:
// div 内のすべての p 要素に対してクリックをバインドしますイベント ハンドラー
// このイベントをトリガーできるのは n2 と n3 だけです
$("div").on("click", "p", function(){
// ここでこれはトリガーを指します。イベントのp要素(要素)
alert( $(this).text() );
});
コードを実行します(他のコードをデモページにコピーして実行してください)
すべての
要素をバインドするには、次の jQuery コードを記述できます:
//すべての p 要素のクリック イベント ハンドラーをバインドします (注: ここではセレクター パラメーターは省略されています)
//n2、n3、および n5 をトリガーできます。このイベント
$("p").on("click", function(event){
// ここでは、クリック イベント
アラート( $(this) をトリガーした p 要素 (Element) を指します。 text() ) ;
});
さらに、複数のイベントを同時にバインドして、追加のデータをイベント処理関数に渡すこともできます。イベント処理関数の jQuery 処理:
var data = { id: 5, name: "Zhang San" };
// 2 つのイベントを n5 にバインドし、追加のデータ data を渡します
// data は任意の型です
$("body").on("mouseenter Mouseleave", "#n5", data, function(event){
var $me = $(this);
var options = event.data ; // これは渡される追加データです
if(event.type == "mouseenter"){
$me.html( "Hello," + options.name + "!"); }else if(event.type == "mouseleave" ){
$me.html( "Goodbye!");
});
条件を満たす要素は次の新しい要素になりますon() 関数が実行されるように追加されました。バインディング イベントは引き続き有効です。最初の HTML コードを例として、次の jQuery コードを記述できます:
// クリック イベント ハンドラーを div 内のすべての p 要素にバインドします
// このイベントをトリガーできるのは n2 と n3 だけです
$("div ").on("click", "p", function(event){
alert( $(this).text() );
});
// 後から追加した n6 も上記をトリガーできますclick イベント。これは div
$("#n1").append('
の p 要素でもあるため、上記でバインドされた click イベントもこの要素に影響します。< /p> ');
events パラメーターは、イベント タイプへの追加の名前空間の追加もサポートしています。同じタイプの複数のイベント ハンドラーを同じ要素にバインドする場合。名前空間を使用すると、イベントまたは
削除イベントfunctioneventsMapのパラメータはオブジェクトであり、複数の「イベントタイプ処理関数」を「プロパティ値」の形式で指定できます。対応するサンプルコードは次のとおりです: var data = { id: 5, name: "张三" };
var events = {
"mouseenter": function(event){
$(this).html( "你好," + event.data.name + "!");
},
"mouseleave": function(event){
$(this).html( "再见!");
}
};
//为n5绑定mouseenter mouseleave两个事件,并为其传入附加数据data
$("body").on(events, "#n5", data);
以上がjQuery.on()関数の使用例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Windows オペレーティング システムは世界で最も人気のあるオペレーティング システムの 1 つであり、その新バージョン Win11 が大きな注目を集めています。 Win11 システムでは、管理者権限の取得は重要な操作であり、管理者権限を取得すると、ユーザーはシステム上でより多くの操作や設定を実行できるようになります。この記事では、Win11システムで管理者権限を取得する方法と、権限を効果的に管理する方法を詳しく紹介します。 Win11 システムでは、管理者権限はローカル管理者とドメイン管理者の 2 種類に分かれています。ローカル管理者はローカル コンピュータに対する完全な管理権限を持っています

OracleSQL の除算演算の詳細な説明 OracleSQL では、除算演算は一般的かつ重要な数学演算であり、2 つの数値を除算した結果を計算するために使用されます。除算はデータベース問合せでよく使用されるため、OracleSQL での除算演算とその使用法を理解することは、データベース開発者にとって重要なスキルの 1 つです。この記事では、OracleSQL の除算演算に関する関連知識を詳細に説明し、読者の参考となる具体的なコード例を示します。 1. OracleSQL での除算演算

PHP のモジュロ演算子 (%) は、2 つの数値を除算した余りを取得するために使用されます。この記事では、モジュロ演算子の役割と使用法について詳しく説明し、読者の理解を深めるために具体的なコード例を示します。 1. モジュロ演算子の役割 数学では、整数を別の整数で割ると、商と余りが得られます。たとえば、10 を 3 で割ると、商は 3 になり、余りは 1 になります。モジュロ演算子は、この剰余を取得するために使用されます。 2. モジュロ演算子の使用法 PHP では、% 記号を使用してモジュロを表します。

Linux システム コール system() 関数の詳細説明 システム コールは、Linux オペレーティング システムの非常に重要な部分であり、システム カーネルと対話する方法を提供します。その中でも、system()関数はよく使われるシステムコール関数の一つです。この記事では、system() 関数の使用法を詳しく紹介し、対応するコード例を示します。システム コールの基本概念 システム コールは、ユーザー プログラムがオペレーティング システム カーネルと対話する方法です。ユーザープログラムはシステムコール関数を呼び出してオペレーティングシステムを要求します。

ソフトウェア開発の分野で広く使用されているプログラミング言語として、C 言語は多くの初心者プログラマーにとって最初の選択肢です。 C言語を学ぶと、プログラミングの基礎知識を定着させるだけでなく、問題解決能力や思考力も向上します。この記事では、初心者が学習プロセスをより適切に計画できるようにするための C 言語学習ロードマップを詳しく紹介します。 1. 基本的な文法を学ぶ C 言語の学習を始める前に、まず C 言語の基本的な文法規則を理解する必要があります。これには、変数とデータ型、演算子、制御ステートメント (if ステートメント、

Linuxのcurlコマンドの詳細な説明 要約:curlは、サーバーとのデータ通信に使用される強力なコマンドラインツールです。この記事では、curl コマンドの基本的な使用法を紹介し、読者がコマンドをよりよく理解して適用できるように実際のコード例を示します。 1.カールとは何ですか? curl は、さまざまなネットワーク要求を送受信するために使用されるコマンド ライン ツールです。 HTTP、FTP、TELNETなどの複数のプロトコルをサポートし、ファイルアップロード、ファイルダウンロード、データ送信、プロキシなどの豊富な機能を提供します。

Promise.resolve() の詳細な説明には、特定のコード例が必要です。Promise は、非同期操作を処理するための JavaScript のメカニズムです。実際の開発では、順番に実行する必要があるいくつかの非同期タスクを処理する必要があることがよくあり、満たされた Promise オブジェクトを返すために Promise.resolve() メソッドが使用されます。 Promise.resolve() は Promise クラスの静的メソッドであり、

Numpy は、豊富な配列演算関数とツールを提供する Python 科学計算ライブラリです。 Numpy のバージョンをアップグレードする場合、互換性を確保するために現在のバージョンをクエリする必要がありますが、この記事では Numpy のバージョン クエリの方法と具体的なコード例を詳しく紹介します。方法 1: Python コードを使用して Numpy のバージョンをクエリします。Python コードを使用して簡単に Numpy のバージョンをクエリできます。実装方法とサンプル コードは次のとおりです: importnumpyasnpprint(np
