1

イベント ハンドラーを再バインドできるように、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>
4

1 に答える 1

0

プラグインの作成を検討することをお勧めします。とても簡単です。開始するためのドキュメントを次に示します: jQuery プラグインの作成

これにより、はるかに簡単に再利用できます。

于 2013-05-10T03:59:02.250 に答える