【发布时间】:2013-02-18 21:06:01
【问题描述】:
我正在努力学习如何使用骨干。我目前正在尝试将 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]);
},
【问题讨论】:
标签: model-view-controller backbone.js backbone-events