2013-01-23 18 views
0

我想單擊按鈕後從表中分離出一行。但是,我無法設法將其追回到原來的位置。我結束了下面的代碼,「刪除」按鈕所屬卸下行:如何將所有分離的行添加回原始位置?

$(".removeTR").live('click', function (event) { 
$(this).closest('tr').fadeTo(400, 0, function() { 
    $(this).detach(); 
}); 
return false; 
}); 

,當我需要分離多行,然後添加他們都用「復位的問題變得更爲複雜「按鈕。你能否提出任何建議或指導我遵循正確的邏輯?

回答

0

我設法使它完全按照我想要的方式使用show()和hide()。這樣我就不必擔心定位。然而,當處理大量表行時,我擔心性能問題。

var trItems = $("table tr").length; 
$(".resetALL").hide(); 

$(".removeTR").live('click', function (event) { 
    $(".resetALL").fadeIn("slow"); 
    $(this).closest('tr').fadeOut("normal"); 
    var trHidden = $("table tr:hidden").length+1; 
    var trRemains = trItems - trHidden; 
    if (trRemains <= 3) { 
     $("span").text("You must have at least " + (trRemains-1) + " products in the comparison table."); 
     $(".removeTR").fadeOut("normal"); 
    } 
}); 

$(".resetALL").live('click', function (event) { 
    $("table tr:hidden").fadeIn("slow"); 
    var trItems = $("table tr").length; 
    $(".removeTR").fadeIn("slow"); 
    $("span").text("This is the span."); 
    $(".resetALL").fadeOut("normal"); 
}); 

下面你可以看到我的工作例如:http://jsfiddle.net/YCdGQ/51/

2

你可以節點的指數<table>

$(this).closest('tr').fadeTo(400, 0, function() { 
    var $this = $(this); 

    $this 
     .data('index', $this.index()) 
     .detach(); 
}); 

..和後,重新插入內像

$('table tr').eq($noderef.data('index').after($noderef); 

注意,存儲索引將是一個靜態值。這意味着如果在此期間添加或刪除了行,我們只需在索引處重新插入該行。

+0

謝謝您的答覆,但似乎我不能使它發揮作用。這可能是因爲我不瞭解這裏的邏輯。如何重新附加一個分離的行: $('table tr').eq($ noderef.data('index').after($ noderef); 當我們分離行並且沒有$('table tr ')追加它後? 我一直在努力,使其工作如下: http://jsfiddle.net/YCdGQ/40/ – otinanai

相關問題