フロントエンド開発では、多くの場合、複雑な対話ロジックを処理するために JavaScript フレームワークを使用する必要があります。その中でも、jQuery は、DOM 要素の操作、イベントの処理、その他の操作を行うための一連のシンプルで高速な API を提供する、広く使用されているフレームワークです。 jQuery を使用してイベント ハンドラーをバインドする場合、多くの場合、バインドされたハンドラー関数を取得する必要があります。この記事では、jQuery イベント バインディングを取得するさまざまな方法を紹介します。
1. data() を使用する
jQuery では、.data() メソッドを使用して要素のデータを取得できます。たとえば、イベント ハンドラーを要素にバインドできます:
$("#myButton").on("click", function() { alert("Clicked!"); });
ここで、data()
メソッドを使用して、バインドされたイベント ハンドラーを取得できます:
var clickHandler = $("#myButton").data("events").click[0].handler;
上記のコードは、data()
メソッドを通じて click
イベントにバインドされた最初の処理関数を取得します。これは、上で定義した匿名関数です。このメソッドは jQuery バージョン 3.x 以降では非推奨となっており、使用は推奨されないことに注意してください。
2. $._data() を使用する
jQuery バージョン 3.x 以降では、$._data()
メソッドを使用して、要素 。たとえば、上記のコードを次のように変更できます。
$("#myButton").on("click", function() { alert("Clicked!"); }); var clickHandler = $._data($("#myButton")[0], "events").click[0].handler;
上記のコードは、$._data()
を通じて click
イベントにバインドされた最初のハンドラー関数を取得します。これは、上で定義した匿名関数です。
$._data()
メソッドは内部メソッドであり、正式なプロジェクトでは使用しないでください。要素のバインドされたデータを取得する必要がある場合は、より標準化された data()
メソッドを使用できます。
3. イベント オブジェクトを使用する
イベント処理関数では、イベント オブジェクトを通じてバインドされたイベント処理関数を取得できます。例:
$("#myButton").on("click", function(event) { var clickHandler = event.handleObj.handler; });
上記のコードは、イベント オブジェクトを通じてイベント バインディング処理関数を取得します。このメソッドはイベント ハンドラー関数内でのみ使用できることに注意してください。
4. unbind() を使用する
jQuery では、unbind()
メソッドを使用して要素のイベントのバインドを解除できます。バインドされたイベント処理関数を取得する必要がある場合は、イベントのバインドを解除する前に関数を変数に保存できます。例:
var clickHandler; $("#myButton").on("click", clickHandler = function() { alert("Clicked!"); }); $("#myButton").unbind("click", clickHandler);
上記のコードは、イベント バインディング処理関数を保存するために clickHandler 変数を定義します。次に、unbind()
メソッドを使用してイベントのバインドを解除し、バインドを解除する前にバインドされたイベント処理関数を取得します。このメソッドは単一のイベント処理関数にのみ適用されることに注意してください。
概要
この記事では、.data()、$._data()、イベント オブジェクト、unbind() などの使用を含む、jQuery イベント バインディング処理関数を取得するためのさまざまな方法を紹介します。メソッド 。 jQuery バージョン 3.x 以降では、より標準化された data()
メソッドを使用して要素のバインドされたデータを取得することが推奨されることに注意してください。イベントのバインドを解除する必要がある場合は、unbind() メソッドを使用して、バインドされたイベント ハンドラーを取得できます。
以上がjqueryはバインディングメソッドを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。