イベント ハンドラーを再バインドできるように、jQuery の拡張機能を提供したいと考えています。これは、部分ビューが ajax を使用して読み込まれるときにイベント ハンドラーがバインドさ$(document)
れ、ページ上で発生するようにバインドされるためです。
ただし、部分がもう一度ダウンロードされたときにページが更新されない場合、2 つのイベントがバインドされます。等々。
したがって、以前のイベントをバインド解除して再度追加する拡張機能を作成しました。
これはもっともらしい解決策ですか?
jQuery.fn.extend({
offOn: function (types, selector, data, fn) {
this.off(types, selector, fn);
this.on(types, selector, data, fn);
}
});
メインページのクリックイベントを介してロードされるパーシャル内でそのように使用されます。
<script type="text/javascript">
$(function() {
$(document).offOn('click', '#my-details-section a.delete-row', onDeleteRow);
function onDeleteRow() { // do something }
});
</script>