0

我正在尝试学习如何与骨干一起工作。我目前正在尝试将 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]);
},  
4

1 回答 1

0

好吧,我想通了,我遇到的问题是我在属性更改(订单)上触发了我的更新订单事件。因为单次更改的顺序比项目多,所以该事件被触发了两次,我只是更改了触发更新顺序事件的方式,并且效果很好。

于 2013-02-19T08:41:35.680 回答