jQuery .on()メソッドを使用して、直接イベントハンドラーと委任イベントハンドラーのこの特定の違いを理解しようとしています。具体的には、この段落の最後の文は次のとおりです。
a
selector
が指定されている場合、イベントハンドラーは委任されたと呼ばれます。イベントがバインドされた要素で直接発生した場合、ハンドラーは呼び出されませんが、セレクターに一致する子孫(内部要素)に対してのみ呼び出されます。jQueryは、イベントターゲットからハンドラーがアタッチされている要素(つまり、最も内側の要素から最も外側の要素)までイベントをバブルし、セレクターに一致するパスに沿ったすべての要素に対してハンドラーを実行します。
「任意の要素に対してハンドラーを実行する」とはどういう意味ですか?コンセプトを試すためにテストページを作成しました。ただし、次の両方の構成により、同じ動作が発生します。
$("div#target span.green").on("click", function() {
alert($(this).attr("class") + " is clicked");
});
また、
$("div#target").on("click", "span.green", function() {
alert($(this).attr("class") + " is clicked");
});
たぶん誰かがこの点を明確にするために別の例を参照することができますか?ありがとう。