jQuery でイベントをバインドする各メソッドには、on() に対応する off()、bind() に対応する unbind()、live() に対応する die() など、イベント バインディングを削除する対応するメソッドがあることがわかっています。 , この匿名イベントのバンドル解除がどのように達成されるのか非常に興味があります。jQuery のソース コードは難解すぎて理解しにくいです。実装原理を分析するためにコードの簡略化されたバージョンを投稿できる専門家はいますか?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
off 処理を理解するには、まず on 操作を理解する必要があると思います。昨年 jquery2.x のソース コードを読みましたが、イベントの部分は非常に複雑です。
大まかなメモに目を通したところ、事件を説明するビデオには、見なければならないことについて何も言及されていないことがわかりました。
イベントのバインディングについては、ソースコードの実装と jquery.event.add メソッドを組み合わせることができます。
リーリー
メソッドを呼び出していることがわかります。 jQuery.event.remove
jQuery.event.remove
の場合は、イベント内のクリックイベントに対応するコールバック関数グループを直接走査して削除することになります。offパラメータにも特定のコールバック関数を渡す場合は、コールバック配列を走査して比較し、削除することになります。対応するコールバック関数 …$(xx).off('click')
$(xx).off('click')
以下はonのコードです
off 処理を理解するには、まず on 操作を理解する必要があると思います。昨年 jquery2.x のソース コードを読みましたが、イベントの部分は非常に複雑です。
大まかなメモに目を通したところ、事件を説明するビデオには、見なければならないことについて何も言及されていないことがわかりました。
イベントのバインディングについては、ソースコードの実装と jquery.event.add メソッドを組み合わせることができます。
私の理解では、jqueryは主に要素のキャッシュデータキャッシュを設定し、キャッシュにはイベント変数(イベントコールバックキューコレクション)が保存され、特定のDOMに複数回追加するために「イベント」:「コールバック関数配列」の形式で保存されます。イベントが発生すると、コールバックをトリガーできますが、実際にネイティブ イベントにバインドされるのは、コールバック関数配列のトラバーサル実行です。リーリー
最後の文を見ると、実際にメソッドを呼び出していることがわかります。
削除メソッドjQuery.event.remove
リーリー
主に、要素が以前にオンになったときに、キャッシュに格納されているイベント変数からイベントのキーと値のペアを削除するなどの操作を実行します。の場合は、イベント内のクリックイベントに対応するコールバック関数グループを直接走査して削除することになります。offパラメータにも特定のコールバック関数を渡す場合は、コールバック配列を走査して比較し、削除することになります。対応するコールバック関数 …
jquery ソース コードについては、初期の基本部分について Miaowei Classroom のビデオを参照することをお勧めします。その他の情報については、http://www.cnblogs.com/aaronj... でダニエルのブログ投稿を参照するか、購入することができます。 jQuery ソースコード分析に関する同様の本。$(xx).off('click')
以下はonのコードです
リーリー