たとえば、テーブルに含まれる複数の要素にイベントをバインドした場合。新しい文字列を作成して割り当てることでこのテーブルを再生成するinnerHTML
と、イベントはまだバインドされていますか? それらをすべて再バインドする必要がありますか?
手動でjQuery.delegate
変更しても機能しますか?innerHTML
たとえば、テーブルに含まれる複数の要素にイベントをバインドした場合。新しい文字列を作成して割り当てることでこのテーブルを再生成するinnerHTML
と、イベントはまだバインドされていますか? それらをすべて再バインドする必要がありますか?
手動でjQuery.delegate
変更しても機能しますか?innerHTML
それらを再バインドする必要がありますが、ボディやドキュメントのように常にDOMにある要素にバインドすると、jquerydelegate
またはnewが機能します。on
$('body').on('click', 'table td', function() {
});
このテーブルの innerHTML を再生成して、新しい文字列を作成して割り当てると、イベントはまだバインドされていますか?
いいえ。
それらをすべて再バインドする必要がありますか?
はい。
innerHTML を手動で変更した場合、jQuery.delegate も機能しますか?
innerHTML
が呼び出された要素の を変更している場合は.delegate()
、いいえ。その子の 1 つを変更している場合はinnerHTML
、はい。
確実に再バインドする必要があります。innerhtml を再生成すると、その中にあった dom 要素とそれらのバインディングが破棄されます。