[解決済み] on` と `live` や `bind` はどう違うのですか?
2022-04-22 03:53:46
質問
jQueryの場合
v1.7
という新しいメソッドが追加されました。
on
が追加されました。 ドキュメントより。
「.on()メソッドは、jQueryオブジェクトの現在選択されている要素セットにイベントハンドラをアタッチします。jQuery 1.7では、.on()メソッドはイベントハンドラのアタッチに必要なすべての機能を提供します'。
とは何が違うのでしょうか?
live
と
bind
?
解決方法は?
on()
は、jQueryのイベントバインディング関数のほとんどを1つに統合する試みです。 これには
live
対
delegate
. jQueryの将来のバージョンでは、これらのメソッドは削除され、以下のメソッドのみとなります。
on
と
one
が残ります。
例
// Using live()
$(".mySelector").live("click", fn);
// Equivalent `on` (there isn't an exact equivalent, but with good reason)
$(document).on("click", ".mySelector", fn);
// Using bind()
$(".mySelector").bind("click", fn);
// Equivalent `on`
$(".mySelector").on("click", fn);
// Using delegate()
$(document.body).delegate(".mySelector", "click", fn);
// Equivalent `on`
$(document.body).on("click", ".mySelector", fn);
内部的には、jQueryは
すべて
これらのメソッド
と
へのイベントハンドラ・セッターを省略したものです。
on()
メソッドを使用し、今後はこれらのメソッドを無視して
on
:
bind: function( types, data, fn ) {
return this.on( types, null, data, fn );
},
live: function( types, data, fn ) {
jQuery( this.context ).on( types, this.selector, data, fn );
return this;
},
delegate: function( selector, types, data, fn ) {
return this.on( types, selector, data, fn );
},
参照 https://github.com/jquery/jquery/blob/1.7/src/event.js#L965 .
関連
-
[解決済み] jquery 3.0 url.indexOfエラー
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] jQuery UI DatePicker - 日付フォーマットの変更
-
[解決済み] '$(this)' と 'this' の違いは何ですか?
-
[解決済み] jQueryやgetElementByIdのようなDOMメソッドが、要素を見つけられないのはなぜですか?
-
[解決済み] jQueryで5秒待つには?
-
[解決済み] jQueryで多段式フォームをリセットする
-
[解決済み】Twitter Bootstrapのツールチップを動的に作成された要素に結合するにはどうすればよいですか?
-
[解決済み] $(this)とevent.targetの違い?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQuery 複数のイベントで同じ関数を起動する
-
[解決済み] jQuery hasAttrで要素に属性があるかどうかをチェックする【重複あり
-
[解決済み] jQuery に何かを実行する前にすべての画像の読み込みを待つように指示する公式な方法
-
[解決済み] jQueryでオブジェクトに登録されたイベントハンドラを検索する
-
[解決済み] jQueryで5秒待つには?
-
[解決済み] jQueryでloading spinnerを表示するには?
-
[解決済み] jquery input select all on focus
-
[解決済み】jQueryのテンプレートエンジン【終了しました
-
[解決済み】フォームのhiddenフィールドにjQueryの".val() "を使って値を設定してもうまくいかない。
-
[解決済み] jQuery append() - 追記された要素を返す