1

我已经看到了许多使用一个模型进行 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'
                            })
                        }
                    });
        });
    });

4

0 回答 0