昔は、呼び出しを連鎖させlive()て大成功を収めていました。
$(".something")
.live("click", function(e) { ... })
.live("change", function(e) { ... })
.live("submit", function(e) { ... });
最近ではlive()、bind()とdelegate()はピカピカの新しい に取って代わられましたon()。
私は単純に置き換えてみましたがlive()、on()これは明らかだと思われます:
$(".something")
.on("click", function(e) { ... })
.on("change", function(e) { ... })
.on("submit", function(e) { ... });
ただし、どのように機能するかを考えると、これが機能しないことはほぼ明らかですon()。これはhttp://api.jquery.com/on/から:
「イベント ハンドラーは、現在選択されている要素にのみバインドされます。コードが .on() を呼び出す時点で、イベント ハンドラーはページ上に存在する必要があります。」
jQuery のドキュメントによると、ライブ イベントを処理するには、バインドしdocumentて委任する必要があります。.something残念ながら、これは、.document上記のものを複製したい場合、デリゲート セレクター ( ) を繰り返すことになることを意味しon()ます。
$(document)
.on("click", ".something", function(e) { ... })
.on("change", ".something", function(e) { ... })
.on("submit", ".something", function(e) { ... });
これは期待どおりに機能しますが、 を使用するように、より明確に連鎖できるようになりたいと思っていますlive()。何か不足していますか?