jQuery可以使用/多个模型进行排序

时间:2012-07-10 15:16:13

标签: jquery ruby-on-rails jquery-ui-sortable

我已经看过很多使用一个模型进行jQuery排序的例子,但我还没有找到任何对两个模型有用的东西。随着那说......

我有两种型号:文件夹和文件夹。任务。

以下是有效的:我可以对文件夹中包含的任务进行排序。

以下是我想要的内容:能够将任务从一个文件夹拖放到另一个文件夹,同时正确排序新文件夹中的任务(即,如果在任务#1和任务之间拖动) #3,然后新任务将被排序为任务#2)。任何人都可以提供如何执行此操作的帮助吗?

这是我到目前为止所做的:

文件夹/ index.html.erb ....

<ul id="folder">
  <% @folders.each_with_index do |folder, i| %>
  <li id="folder_<%= folder.id %>"> <%= folder.name %> </li>
  <% if !folder.tasks.blank? %>
      <ul id="task">
        <% folder.tasks.each do |task| %>
            <li id="task_<%= task.id %>"><%= task.name %></li>
        <% end %>
      </ul>
  <% end %>
 <% end %>
</ul>

<script type="text/javascript">
    // Sorting the list
    $(document).ready(function(){

        $(function() {
            $('#task').sortable(
                    {
                        opacity: 0.6,
                        cursor: 'move',
                        connectWith: '#folder',

                        receive: function(event, ui) {
                            $.ajax({
                                type: 'put',
                                data: {folder_id : '#{folder.id}' },
                                dataType: 'script',
                                complete: function(request){
                                    $('#task').effect('highlight');
                                }, url: '/tasks/change_folder'
                            })
                        },

                        update: function(){
                            $.ajax({
                                type: 'post',
                                data: $('#task').sortable('serialize') ,
                                dataType: 'script',
                                complete: function(request){
                                    $('#task').effect('highlight');
                                },
                                url: '/tasks/sort'
                            })
                        }
                    });
        });
    });

0 个答案:

没有答案