0

バックボーンの操作方法を学ぼうとしています。私は現在、jQuery ui から、Addy Osmani によって作成された todo アプリケーションにソート可能を追加しようとしています。

そこで、js フィドルで見たように、ソート可能なドロップ イベントでイベントをトリガーしようとしました。このイベントはdrop()、アイテム ビューで関数 ( update-order()) をトリガーし、アプリ ビューで関数 ( ) をトリガーします。changeandこの最後の関数で、新しい順序を保存して todo リストの順序を変更したいと考えています。

私が抱えている問題はupdateOrder、ドロップ関数が 1 回だけ起動されたときに関数が 4 回起動され、順序の変更も記録されず、理由がわからないことです。

これが私の例です: http://www.fgtechs.fr/backbone/私は基本的に、ソート可能なドロップイベントで順序を逆にしようとしています。

関数updateOrderが一度だけトリガーされ、順序の変更が記録されることを望みました...しかし、これは何も起こりませんでした...

私は本当にあなたの助けが必要です。

これが私のコードの一部です(残りは私の例で見ることができます):

<script>
        $(document).ready(function() {
            $('#widget-list').sortable({
                stop: function(event, ui) {
                    event.stopPropagation()
                    event.preventDefault();
                    ui.item.trigger('drop', ui.item.index());
                }
            });
        });    
    </script>


//on the drop, we invert the order
        updateOrder:function(event, model, position){
            alert('update-order');
            console.log(app.Widgets.length);
            app.Widgets.each(function (widget, order) {
                widget.save({
                    'order': app.Widgets.length-order
                });
            });
        }


//On the event drop, we trigger the function update order
drop: function(event, position) {
    this.$el.trigger('update-order', [this.model, position]);
},  
4

1 に答える 1

0

さて、私が抱えていた問題は、属性の変更 (注文) で更新注文イベントをトリガーしたことでした。1回のドロップでアイテムと同じくらい多くの順序が変更されるため、イベントは2回トリガーされました.update-orderイベントをトリガーする方法を変更するだけで、完全に機能しました.

于 2013-02-19T08:41:35.680 に答える