2014-02-10 70 views
0

有一張表格,用戶可以在其中選擇多行,在下面有兩個按鈕「向上」和「向下」。如果用戶點擊「向下」選中的行應該向下一行,「向上」則相同,選定的行應該增加一行,用戶可以選擇任何行。在html表格中向下移動Jquery

下面是我的jQuery代碼。

對於 「向下」

$(".moveDown").live("click", function(){ 
    var row = $("#pageDefTable .selectRow"); 

    row.each(function() { 
     var $this=$(this); 
     $this.insertAfter($this.next()); 
    });  

    return false; 
}); 

而對於 「向上」

$(".moveUp").live("click", function() { 
    var row = $("#pageDefTable .selectRow"); 

    row.each(function() { 
     var $this=$(this); 
     $this.insertBefore($this.prev()); 
    }); 

    return false; 
}); 

但它不工作的罰款。當我選擇最上面兩行並單擊時,它不起作用。 以同樣的方式,如果我選擇最後兩行並點擊,它不起作用。

您的建議和幫助,將不勝感激。

嗨達米安,你提供的解決方案在正常情況下工作正常。我有一個案例..我在下面解釋, 有兩個表格說左和右>用戶可以從左表中選擇任何行(id = metricTable),並可以移動到右表(id = pageDefTable),它附加在最後在表中,並在右表中顯示爲選定的行。

下面

是從左表中選擇到右表中的任何行

 $("#center .move-row").live("click", function() { 
      var tr = $("#metricTable .selectRow").remove().clone(); 
      $("#pageDefTable tbody").append(tr); 
     return false; 
     }); 

右表是具有上移和下移的功能,只是由左到右表中移動任何一行之後該表的代碼比單擊moveup按鈕,它不會移動行,當我第二次點擊它消失。

請任何幫助和建議???

+0

向我們展示你的HTML代碼 –

回答

0

我沒有看到moveUp的問題。在下移你需要倒序項目:

$($('tr.selected').get().reverse()).each(function() { 
    if ($(this).next()) { 
     $(this).insertAfter($(this).next()); 
    } 
}) 

jsfiddle

+0

我已經更新例如用停止條件不上已有的週期選定元素的頂部或底部 - > HTTP ://jsfiddle.net/7h5qy/4/ –

+0

是的,它正在工作。大!謝謝達米安! – user3194412

+0

嗨達米安,你提供的上述解決方案在正常情況下工作正常。我還有一個案例..我在下面解釋,有兩個面板左右兩邊都有桌子。用戶可以從左側選擇任意一行,並可以移動到右側面板 – user3194412