我正在尝试学习如何与骨干一起工作。我目前正在尝试将 jQuery ui 中的可排序添加到由 Addy Osmani 创建的待办事项应用程序中。
因此,我尝试在可排序的放置事件上触发一个事件,正如我在 js fiddle 中看到的那样。此事件将drop()
在我的项目视图中触发一个函数 ( update-order()
),该函数在我的应用视图中触发一个函数 ()。changeand
我希望最后一个函数通过保存新订单来重新排序待办事项列表。
我遇到的问题是我的函数updateOrder
被触发了 4 次,当 drop 函数只触发一次时,也没有记录顺序的变化,我不知道为什么。
这是我的示例: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]);
},