簡體   English   中英

刪除表格行

[英]delete table row with effect

此頁面上 ,如果單擊第一行(“麥當娜”)的“取消訂閱”按鈕,則下面的行會合理地向上滑動。 但是,如果您隨后刪除新的第一行(Radiohead),則在該行移入位置后,其余行(U2)上的圖像會不愉快地跳到左側。 用來執行表行刪除的函數為:

SF.deleteRow = function(selector) {
    $(selector)
        .children('td, th')
        .animate({ paddingTop: 0, paddingBottom: 0 })
        .wrapInner('<div />')
        .children()
        .slideUp('slow', function() {
            $(this).closest('tr').remove();
        });
};

如果我刪除表格單元格中的所有填充,此問題將消失,但隨后我將沒有填充.....

有什么辦法可以解決這個問題? 另外,刪除表行時是否可以避免該問題(我不希望該行在單擊“取消訂閱”按鈕時立即消失)是否可以應用另一種效果。

您提到的跳轉發生是因為刪除較長的文本“ Radiohead”時第一列縮小,而較短的文本“ U2”是定義第一列中單元格寬度的唯一因素。 通過在表中使用固定的列寬可以解決此問題。

我建議只用div而不用表來做..那么你可以像這樣輕松地做到這一點:

<style>
    .row {
        float: left;
        width: 990px;
        overflow: hidden;
    }
        .row  .col {
            float: left;
            width: 490px;
        }
            .row  .col.first {
                width: 200px;
            }
            .row  .col.last {
                width: 300px;
            }

</style>

<script type="text/javascript">
    [...]
    SF.deleteRow = function(selector) {
        $(selector)
            .find('.row')
            .animate({ height: 0 },"fast", "linear", function() {
                $(this).remove();
            });
    };
    [...]
</script>

<div class="row even">
    <div class="col first">[....]</div>
    <div class="col">[....]</div>
    <div class="col last">[....]></div>
</div>
<div class="row odd">
    <div class="col first">[....]</div>
    <div class="col">[....]</div>
    <div class="col last">[....]></div>
</div>
<div class="row even">
    <div class="col first">[....]</div>
    <div class="col">[....]</div>
    <div class="col last">[....]></div>
</div>
<div class="row even">
    <div class="col first">[....]</div>
    <div class="col">[....]</div>
    <div class="col last">[....]></div>
</div>

這只是一個例子。 由於隱藏了row類上的溢出,因此當高度為0時將不顯示任何內容。

如果您只想使用桌子,那會有點困難!

這個答案只是使用div而不是表格的建議。我也喜歡使用css浮點數,因為它比在非浮點對象上更容易在元素上制作動畫(我認為)。

因此,解決方案變得非常復雜...為什么不首先將容器的溢流``隱藏''並縮小容器的高度...

編輯::謝謝@Derek向我指出邊界仍然存在...讓我再次看了看我的代碼,發現一個但是。 回調函數應為$(this).remove(); 這就是全部。

請參閱此處的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM