2016-02-10 79 views
1

我有一個表中有部分的表。我使用jQuery來隱藏不同的部分,並且該部分工作得很好,但是當我隱藏所有這些部分時,該行發生了某些情況。該行有一個3的colspan,但是當全部隱藏時,它變成只有一列。我附上了下面的jsfiddle鏈接。我似乎無法弄清楚爲什麼會發生這種情況。我試圖讓頭部有25%,25%和50%的列,它沒有做任何事情。另一個問題是,即使我把每行/表格/寬度都設爲100%,它仍然不是窗口的長度。jQuery切換刪除表列

目前我這段代碼

.fixed_headers td:nth-child(1), 
.fixed_headers th:nth-child(1) { 
    min-width: 200px; 
} 

對於每一列迫使列的寬度......我不能讓這個要依據%的工作。不幸的是,我不是一個前端開發人員,像這樣的小事情很煩人,想要弄明白。

另外我注意到,在下面的代碼片段不起作用,只有在JsFiddle它沒有。

JsFiddle

$(document).ready(function() { 
 
    $("tr").click(function() { 
 
    $(this).toggleClass("highlighted"); 
 
    }) 
 

 
    $('.ok').on('click', function(e) { 
 
    var selected = []; 
 
    $("#table tr.highlighted").each(function() { 
 
     selected.push($('td:first', this).html()); 
 
    }); 
 
    alert(selected); 
 
    }); 
 

 

 
    $('.hd').click(function() { 
 
    $(this).toggleClass('expand').nextUntil('tr.hd').slideToggle(1); 
 
    }); 
 

 

 

 
});
.tableDiv { 
 
    border: 1px solid #6C8CD9; 
 
    width:100%; 
 
} 
 

 
.tableTitle { 
 
    height: 20px; 
 
    background-color: #D4DFFA; 
 
    font: bold 8pt Tahoma Black; 
 
    text-align: left; 
 
    padding-top: 5px; 
 
    padding-left: 5px; 
 
    border: 1px solid #FFFFFF; 
 
} 
 

 
.tableFunction { 
 
    height: 20px; 
 
    background-color: #D4DFFA; 
 
    color: #737373; 
 
    font: 8pt Tahoma; 
 
    text-align: left; 
 
    padding-top: 5px; 
 
    padding-left: 5px; 
 
    border: 1px solid #FFFFFF; 
 
    border-top: 0px; 
 
} 
 

 
.fixed_headers { 
 
    width: 100%; 
 
    table-layout: fixed; 
 
    border-collapse: collapse; 
 
} 
 

 
.fixed_headers th { 
 
    border-right: 1px solid #EBEFF3; 
 
    border-bottom: 1px solid #A8BBE0; 
 
    padding: 4px; 
 
    text-align: left; 
 
    font: normal 8pt Tahoma; 
 
    background: -webkit-linear-gradient(#FFFFFF, #DFE7F7); 
 
    border-top: 1px solid #A8BBE0; 
 
    height: 20px; 
 
    width: 100%; 
 
} 
 

 
.fixed_headers td { 
 
    border-right: 1px solid #EBEFF3; 
 
    border-bottom: 1px solid #EBEFF3; 
 
    padding: 4px; 
 
    text-align: left; 
 
    font: normal 8pt Tahoma; 
 
} 
 

 
.fixed_headers thead { 
 
    background: -webkit-linear-gradient(#FFFFFF, #DFE7F7); 
 
    color: #737373; 
 
    width: 100%; 
 
} 
 

 
.fixed_headers thead tr { 
 
    width: 100%; 
 
    display: block; 
 
    position: relative; 
 
} 
 
.fixed_headers thead td { 
 
    color: #737373; 
 
    
 
} 
 

 
.fixed_headers tbody { 
 
    display: block; 
 
    overflow: auto; 
 
    width: 100%; 
 
    height: 300px; 
 
} 
 

 
.fixed_headers tr:nth-child(odd) { 
 
    width: 100%; 
 
    background-color: #f0f4fa; 
 
} 
 

 
.fixed_headers tr:nth-child(even) { 
 
    width: 100%; 
 
    background-color: #ffffff; 
 
} 
 

 
.fixed_headers tr.highlighted { 
 
    color: #261F1D; 
 
    background-color: #FFCC66; 
 
} 
 

 
.fixed_headers tr:hover { 
 
    color: #261F1D; 
 
    background-color: #FFE8BA; 
 
} 
 

 
.fixed_headers tr.hd { 
 
    cursor: pointer; 
 
    font: bold 8pt Tahoma; 
 
    background-color: #FFE0BA; 
 
} 
 

 
.hd .sign:after { 
 
    content: "-"; 
 
    display: inline-block; 
 
} 
 

 
.fixed_headers tr.sub-hd { 
 
    cursor: pointer; 
 
    font: bold 8pt Tahoma; 
 
    background-color: #FF10AA; 
 
} 
 

 
.hd.expand .sign:after { 
 
    content: "+"; 
 
}
<div class="tableDiv"> 
 
    <div class="tableTitle"> 
 
    Title for the table 
 
    </div> 
 
    <div class="tableFunction"> 
 
    Table function 
 
    </div> 
 
    <table class="fixed_headers" id="table"> 
 
    <thead> 
 
     <tr> 
 
     <th>Name</th> 
 
     <th>Color</th> 
 
     <th>Description</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr class="hd"> 
 
     <td colspan='3'>Header <span class="sign"></span></td> 
 
     </tr> 
 
     <tr class="sub-hd"> 
 
     <td colspan='3'>Sub Header</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Apple</td> 
 
     <td>Red</td> 
 
     <td>These are red.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Pear</td> 
 
     <td>Green</td> 
 
     <td>These are green.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Grape</td> 
 
     <td>Purple/Green</td> 
 
     <td>These are purple and green.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Orange</td> 
 
     <td>Orange</td> 
 
     <td>These are orange.</td> 
 
     </tr> 
 

 
     <tr class="hd"> 
 
     <td colspan="3">Header <span class="sign"></span></td> 
 
     </tr> 
 
     <tr class="sub-hd"> 
 
     <td colspan='3'>Sub Header</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Kiwi</td> 
 
     <td>Green</td> 
 
     <td>These are green.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Plum</td> 
 
     <td>Purple</td> 
 
     <td>These are Purple</td> 
 
     </tr> 
 
     <tr class="sub-hd"> 
 
     <td colspan='3'>Sub Header</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Plum</td> 
 
     <td>Purple</td> 
 
     <td>These are Purple</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Watermelon</td> 
 
     <td>Red</td> 
 
     <td>These are red.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Tomato</td> 
 
     <td>Red</td> 
 
     <td>These are red.</td> 
 
     </tr> 
 
     <tr class="sub-hd"> 
 
     <td colspan='3'>Sub Header</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Cherry</td> 
 
     <td>Red</td> 
 
     <td>These are red.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Cantelope</td> 
 
     <td>Orange</td> 
 
     <td>These are orange inside.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Honeydew</td> 
 
     <td>Green</td> 
 
     <td>These are green inside.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Papaya</td> 
 
     <td>Green</td> 
 
     <td>These are green.</td> 
 
     </tr> 
 
     <tr class="hd"> 
 
     <td colspan="3">Header <span class="sign"></span></td> 
 
     </tr> 
 
     <tr class="sub-hd"> 
 
     <td colspan='3'>Sub Header</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Plum</td> 
 
     <td>Purple</td> 
 
     <td>These are Purple</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Raspberry</td> 
 
     <td>Red</td> 
 
     <td>These are red.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Blueberry</td> 
 
     <td>Blue</td> 
 
     <td>These are blue.</td> 
 
     </tr> 
 
     <tr class="sub-hd"> 
 
     <td colspan='3'>Sub Header</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Mango</td> 
 
     <td>Orange</td> 
 
     <td>These are orange.</td> 
 
     </tr> 
 
     <tr> 
 

 
     <td>Passion Fruit</td> 
 
     <td>Green</td> 
 
     <td>These are green.</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div> 
 
<input type="button" name="OK" class="ok" value="OK" />

回答

0

問題是TBODY的顯示屬性

剛剛更新了你的提琴查收

[http://jsfiddle.net/zhx64egb/32/]