バックボーンの操作方法を学ぼうとしています。私は現在、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]);
},