に変更します
$('.para').on("click",".test",function(e) {
alert('clicked');
});
委任されたイベントを使用する場合、イベント ハンドラーは親要素にのみアタッチされます。Jquery は、子孫要素のイベント ハンドラーを追加しません。それがもう一つのメリット
セレクターが提供されている場合、イベント ハンドラーは委任されていると見なされます。イベントがバインドされた要素で直接発生した場合、ハンドラーは呼び出されませんが、セレクターに一致する子孫 (内部要素) に対してのみ呼び出されます。jQuery は、イベント ターゲットからハンドラーがアタッチされている要素 (つまり、最も内側の要素から最も外側の要素) までイベントをバブルし、セレクターに一致するそのパスに沿ったすべての要素に対してハンドラーを実行します。
まだ作成されていない子孫要素のイベントを処理する機能に加えて、委譲イベントのもう 1 つの利点は、多数の要素を監視する必要がある場合にオーバーヘッドが大幅に削減される可能性があることです。 1,000 要素まで:
$("#dataTable tbody tr").on("click", function(event){
alert($(this).text());
});
委譲イベント アプローチでは、イベント ハンドラーを 1 つの要素 (tbody) のみにアタッチし、イベントは 1 レベル (クリックされた tr から tbody まで) バブルアップするだけで済みます。
$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});
$.onから
document
すべてを監視する必要がある場合に備えて、委任されたイベント ハンドラを.test
$(document).on("click",".test",function(e) {
alert('clicked');
});
しかし、ドキュメントが述べているように、イベントはより多くのレベルをバブルアップする必要があります. ドキュメントに添付するか、.para