gpt4 book ai didi

javascript - 使用 jQuery 调整表列大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:20:09 24 4
gpt4 key购买 nike

我正在尝试编写一段代码,为我的数据表启用列大小调整功能。但它无法正常工作。我在互联网上探索了几天,但除了一些插件外,我一无所获。但是我不想使用任何插件,因为我的数据表非常复杂,如果我使用它们可能会破坏该表的其他功能。因此我尝试自己编写。您能否检查并完善我的代码或建议任何其他符合我的规范的代码....
注意:用户可以将列的大小向右调整到表格宽度,但向左调整,它只能调整到 td 的左侧位置..
Eidt: Maxwell 给出了一个很好的选择。它工作正常,但在一种情况下。如果我尝试向左侧调整大小,它不允许,因为 td 宽度固定为其内容宽度......但是我想通过将 td 的样式设置为 overflow:hidden 或其他方式,将它的大小调整到左侧直到它的 offset().left 值....
这是我的一段代码....

<!DOCTYPE HTML PUBLIC>
<html>
<head>
<title> New Document </title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
<style>
table{
border-collapse:collapse;
}
table td{
border:1px solid red;
}
.vUiDtColResize{
width:2px;
height:20px;
border:1px solid blue;
float:right;
display:block;
cursor:w-resize;
position:relative;
right:-3px;
float:top;
}
</style>
</head>

<body>
<table>
<thead>
<tr>
<td>S.No <div class="vUiDtColResize"></div></td>
<td>Name <div class="vUiDtColResize"></div></td>
<td>Qualif <div class="vUiDtColResize"></div></td>
</tr>
</thead>
<tbody>
<tr> <td>1</td><td>Rama Rao</td><td>M.C.A</td></tr>
<tr> <td>2</td><td>Dushyanth</td><td>B.Tech</td></tr>
<tr> <td>3</td><td>AnandKumar</td><td>M.C.A</td></tr>
<tr> <td>4</td><td>Veera Reddy</td><td>B.Tech</td></tr>
</tbody>
</table>
<div id="helper"></div>
</body>
<script>
$('.vUiDtColResize').each(function(){

var _rsTd = $(this).parent('td');
var _rsTr = _rsTd.parent('tr');
var _rsTdRight,_thisLeft,_rsTdWidth;

$(this).draggable({axis:'x',containment:_rsTd,refreshPositions:true,
create:function(event,ui){
},
start:function(event,ui){
_rsTdRight = _rsTd.offset().left + _rsTd.outerWidth();
},
drag:function(event,ui){
var _sizeDiff = $(this).offset().left - _rsTdRight;
_rsTdRight = $(this).offset().left;
_rsTdWidth = _rsTd.outerWidth() + _sizeDiff;
_rsTd.outerWidth(_rsTdWidth);
},
stop:function(event,ui){
}
});
});

</script>
</html>

最佳答案

我将您的代码与我发现的一些技术合并 — http://jsfiddle.net/tpqn7/

恕我直言,还有一些问题。首先,我想如果表格标题可以通过按每个 TH 来调整大小,而不仅仅是小边框,那会更好(也更容易)。

希望这对您有所帮助。

关于javascript - 使用 jQuery 调整表列大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com