可扩展行的可排序表

Jul*_* G. 5 jquery jquery-ui ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我是一个jquery/rails新手,我在使用.sortable()时遇到了麻烦.我有可扩展的行,我似乎无法获得正确的代码,以隐藏行,即子行,坚持可见,即父行.相关的JS代码:

(function($){
    $.fn.jSortable = function(){


    var element = this;

    var fixHelper = function(e, ui) {
        ui.children().each(function(){
            $(this).width($(this).width());
        });
        return ui;
    };

    $(element).sortable({
        helper: fixHelper,
        axis: "y",
        cursor: "move",
        items: "tr.odd2",
        distance: "30"

    });
    $(element).disableSelection();
};

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

父行具有类odd2,子行具有类child.

当应用.sortable()时,将2行锁定在一起的正确方法是什么?

我目前正在使用带有jquery-rails 1.0.19的rails 3.1.1

编辑:

这是相关的html

<table id="sortableTable">
  <tr class= 'headings'>
        <th><%= sortable "number" %></th>
        <th><%= sortable "customer_id" %></th>
        <th><%= sortable "priority" %></th>
        <th><%= sortable "quantity" %></th>
        <th><%= sortable "due_date" %></th>
        <th></th>
  </tr>

<% @jobs.each do |job| %>
  <tr class= "odd2">
    <td><%= job.number %></td>
    <td><%= job.customer %></td>
    <td><%= job.priority %></td>
    <td><%= job.quantity %></td>
    <td><%= job.due_date %></td>
    <td><%= button 'Edit', edit_job_path(job) %></td>
  </tr>

  <tr class= "child">
    <td><%= job.job_items %></td>
  </tr>
 <% end %>
</table>

<%= javascript_tag do %>
$(document).ready(function(){
    $('#sortableTable tbody').jSortable();
});

<% end %>
Run Code Online (Sandbox Code Playgroud)

编辑2:我已经使用jquery-rails 2.0.0将我的应用程序更新到Rails 3.2.1

编辑3:由于没有人提供表标签而不是div的解决方案,我还没有找到适用于表的任何东西,我被迫改为div.

Wil*_*elm 1

似乎这就是您想要的:http ://jqueryui.com/demos/sortable/#portlets

如果没有,请发布您的 HTML,以便更容易看到您正在尝试执行的操作。

具体来说,请注意可排序项目是一个 div 并具有用于子项的 div。

<div class="portlet">
    <div class="portlet-header">Feeds</div>
    <div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
</div>
Run Code Online (Sandbox Code Playgroud)