5

Jestem początkującym jquery/rails i mam problem z użyciem .sortable(). Mam rozwijane wiersze i nie mogę uzyskać prawidłowego kodu, aby ukryty wiersz, tj. Wiersz potomny, pozostawał widoczny, tzn. Wiersz nadrzędny. Odpowiedni kod JS:Sortable table with expandable Rows

(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); 

Wiersz nadrzędny ma klasę nieparzystą2, a wiersz potomny ma klasę potomną.

Jaki jest właściwy sposób blokowania 2 wierszy razem, gdy stosuje się .sasable()?

Obecnie używam szyn 3.1.1 z jQuery szyn 1.0.19

EDIT:

Oto istotne 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 %> 

EDIT 2: I zostały zaktualizowane moją aplikację Railsy 3.2.1 z jquery-rails 2.0.0

EDIT 3: Ponieważ nikt nie dostarczył rozwiązania dla tagu tabeli zamiast div i nie znalazłem jeszcze niczego, co dotyczy tabeli, jestem zmuszony do zmiany na divy.

Odpowiedz

1

Wydaje się, że to, co chcesz: http://jqueryui.com/demos/sortable/#portlets

Jeśli nie, proszę wysłać HTML tak, że łatwiej jest zobaczyć, co staramy się robić.

W szczególności zauważ, że przedmiotem do sortowania jest element div i element div dla elementów podrzędnych.

+0

Przykro mi z powodu mojego braku wiedzy na temat jquery, ale czy portlet powinien być obsługiwany przez divy? z twojego przykładu, czy mógłbym zamienić go na tabelę, wiersz nadrzędny, ukryty wiersz? –

+0

Ponieważ nikt nie wie, jak zastosować to do tabeli, będę musiał zmienić na divy, więc mogę tego użyć. Dzięki za odpowiedź. –