【发布时间】:2016-11-16 23:20:39
【问题描述】:
我正在使用github project 制作具有垂直和水平滚动的固定标题表。
我能够实现基本模板。如果我有一些隐藏的表头,我需要在将数据传递给函数的colModal 时进行一些更改。我已经做出了这些改变。但我无法复制(以匹配第一小提琴)发送到colModal 的数据。
HTML
<table id="mytable">
<thead>
<tr>
<th style="width:40px;display:none">Head1</th>
<th style="width:50px">Head2</th>
<th style="width:60px">Head3</th>
<th style="width:70px">Head4</th>
<th style="width:80px">Head5</th>
</tr>
</thead>
<tbody>
<tr>
<td style="display:none">1</td>
<td >2</td>
<td >3</td>
<td >4</td>
<td >5</td>
</tr>
<tr>
<td style="display:none">1</td>
<td >2</td>
<td >3</td>
<td >4</td>
<td >5</td>
</tr>
<tr>
<td style="display:none">1</td>
<td >2</td>
<td >3</td>
<td >4</td>
<td >5</td>
</tr>
<tr>
<td style="display:none">1</td>
<td >2</td>
<td >3</td>
<td >4</td>
<td >5</td>
</tr>
<tr>
<td style="display:none">1</td>
<td >2</td>
<td >3</td>
<td >4</td>
<td >5</td>
</tr>
</tbody>
</table>
jQuery
var listWidth = $("#mytable tr th").map(function() {
if ($(this).is(":visible")) {
return this.style.width;
}
}).get();
var viewData = {
thsVisible: []
};
for (var i = 0; i < listWidth.length; i++) {
var jsonData = {
width: listWidth[i].slice(0, -2),
align: 'left'
};
viewData.thsVisible.push(jsonData);
}
console.log(viewData);
$('#mytable').fxdHdrCol({
fixedCols: 0,
width: "100%",
height: 100,
colModal: viewData
});
colModal
colModal: [{width: 30, align: 'center'},
{width: 70, align: 'center'},
{width: 200, align: 'left'},
{width: 100, align: 'center'},
{width: 70, align: 'center'},
]
Template fiddle when have hidden tds。如果您观察到,在这个小提琴中,第一个 td 是隐藏的,但它的宽度应用于第二个 td 和第二个 td's 宽度到第三个,然后它紧随其后,我试图避免使用上面的 javascript。所以我从没有隐藏的内联 css 中获取宽度。
收到Uncaught TypeError: Cannot read property 'width' of undefined 的错误。我需要将viewData 与ColModal 匹配。
【问题讨论】:
标签: javascript jquery css json html-table