2016-11-11 2 views
4

jQueryを使用してテーブル内の要素をドラッグアンドドロップでソートすることができる表があります。jQueryが上方に移動して見つかる

要素を「ソート可能な行」にドロップするとき、以前の「セクション行」からdata-idを読み取る必要があります。

"section-row"の直下の行、または2つ下の行に行がドロップされたときに、これを達成できました。

まずレベルダウン:

($(ui.item[0]).closest('tr').prev('.stop-row').data('id'); 

セカンドレベルダウン:

$(ui.item[0].previousElementSibling).closest('tr').prev('tr.stop-row').data('id'); 

問題は、「セクション」はそれに追加された行の任意の量を持つことができるということですので、私はいくつかの種類を必要とします前の要素が「セクション行」であるかどうかをチェックするループ。そうでない場合は、以下をチェックします。

jQueryでこれをどのように達成できますか?

マイ表:それは、最も近いtrに行くすべてがtrを先行検索し、クラス.section-rowとの最初の1で停止します $(ui.item[0]).closest('tr').prevAll('.section-row:first').data('id');

<table class="table table-bordered table-responsive"> 
    <thead> 
     <tr> 
      <td>Assignment</td> 
     </tr> 
     <tr> 
      <td>Type</td> 
     </tr> 
     <tr> 
      <td>Time</td> 
     </tr> 
     <tr> 
      <td>Level</td> 
     </tr> 
    </thead> 

    <tbody class="sortable"> 
     <tr class="section-row" data-id="{{ id }}"> 
      <td> Section-{{ id }}</td> 
     </tr> 
     <tr class="sortable_row"> 
      <td>{{ assignment }}</td> 
      <td>{{ type }}</td> 
      <td>{{ time }}</td> 
      <td>{{ level }}</td> 
     </tr> 
    </tbody> 
</table> 

答えて

6

あなたはこれを行うことができます。

+0

これは私が必要としたものです。私は、テーブルの例に複数のセクションがあり、その間にドロップできる行を追加することを忘れてしまった。これは私の問題を解決しました。 – Mezz

+0

@DennisM Stackの解決策としてマークする方法は、http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-workに掲載されています。同じ。そうでなければ、他の人は質問がまだ開かれている/未解決であると思って、より多くの回答を投稿するように誘惑されるかもしれません。 –

関連する問題