このようにスパンのクリックイベントをつけました。スパンはテーブル内にあります。
$("#tblImport").find("span").each(function () {
$(this).click(function () {
appendData(this);
});
});
このイベント ハンドラ「appendData」は ajax リクエストを作成し、データを取得します。
function appendData(prntSpan) {
$(prntSpan).append(createElements());//ajax call.
updateEvents(prntSpan);
}
私が望むのは、このクリック イベント ハンドラーをデタッチして、新しいハンドラーをアタッチすることです。だから私はこれを試しました。
function updateEvents(curntSpan) {
$(curntSpan).off('click');//this works
$(curntSpan).off('click', appendData);// but this does not work strange
$(curntSpan).on('click', toggleData(curntSpan));//nor a new click handler is attached
}
.on が使用されている上記の行が実行されると関数が呼び出されますが、その後スパンをクリックしてもイベントは発生しません。