HTMLの同じ部分を変更するために多くのajax呼び出しを行う状況にあります。この html はグリッドを表します。ajax 呼び出しで html を変更した後、イベント ハンドラーをグリッドのイベントにアタッチします。ユーザーが更新ボタンをクリックすると、新しい html コードを設定する同じ ajax 呼び出しを実行し、グリッドのイベントをリッスンするイベント ハンドラーを再度追加します。
前のイベント ハンドラーがまだメモリ内にある場合、グリッドを更新して新しいイベント ハンドラーを追加するたびに知りたいのですが、そうである場合、この状況でのベスト プラクティスは何ですか? (たとえば、新しい html を配置する前に、存在する場合はイベント ハンドラーのバインドを解除します)
これが私がすることの例です:
$.get(this.config.actionLoggingUserListUrl, viewModel, function (data) {
MyNamespace.ui.hideGridAnimation($("#LoggingActionUsersList"));
if (data.success) {
$("#validationSummary").html("");
$("#usersList").html(data.result);
$("#LoggingActionUsersList").click(function() {
console.log("Here is my event handler attached multiple times!");
});
}
else {
$("#validationSummary").html(data.result);
$("#usersList").html("");
}
});
この場合、私が話しているイベント ハンドラーは次のとおりです。
$("#LoggingActionUsersList").click(function() {
console.log("Here is my event handler attached multiple times!");
});