我正在寻找一种使用jQuery来预定义表格的方式实现列(而非行)大小调整和拖放的方法。我搜索了一下但并没有找到符合要求的内容,因为很多方法都需要使用jQuery重新构建整个表格结构。我只是想简单地添加这些功能,而不是让第三方完全控制我的整个表格结构。
请问有没有任何插件可以帮助我完成这个任务?如果没有,那么有没有什么jQuery大牛已经解决了这个问题呢?
请问有没有任何插件可以帮助我完成这个任务?如果没有,那么有没有什么jQuery大牛已经解决了这个问题呢?
我猜你对于现有的网格插件,例如jqGrid,不感兴趣?我建议看看它们的实现来了解如何拖放列。
我没有具体的代码来做这个,但是以下是我初始的思路。
我会使用css table-layout: fixed
和<col>
标签来定义列宽。这样,你的jquery代码只需要在一个地方改变宽度值,所有列中的单元格都会自动调整宽度。
<table width="100%" cellspacing="0">
<col width="25%">
<col width="25%">
<col width="25%">
<col width="25%">
<tr>...</tr>
</table>
<th>Title<div class="resizer"></div></th>
。这个<div>
成为了你的调整大小的手柄,你需要在它上面使用CSS来改变鼠标悬停时的光标。你甚至可以使用CSS将它向右推一点,使它与列之间的边框重叠。<col>
的宽度。如何调整大小将取决于您的需求,可能需要一些数学计算。<col>
的大小并应用它们,将高度改回仅适合于<th>
,并再次使其不可见。
<th>
元素开始。上面描述的<div>
在<th>
元素中,可以具有可放置行为。这样,您就可以将任何列拖动到这些div之一上并将其放下。当一列被拖到一个div上方时,该div应该变得可见,可能是列的高度。<td>
移动到正确的位置。不要忘记移动适当的<col>
和<th>
。