tr"-6ren">
gpt4 book ai didi

jQuery UI 可排序表格和单元格在拖动 tr 时缩小

转载 作者:行者123 更新时间:2023-12-01 01:13:43 24 4
gpt4 key购买 nike

拖动时我面临两个问题。

  1. 当我有一个隐藏的td时,表本身正在缩小。
  2. 拖动的 tr 单元格(td)正在缩小

这是可排序的代码:

$('tbody').sortable({
items: ">tr",
appendTo: "parent",
opacity: 1,
containment: "document",
placeholder: "placeholder-style",
cursor: "move",
delay: 150,
});

jsfiddle link

最佳答案

表格缩小的问题是因为您有一个隐藏单元格(在 sortable 为您创建的占位符中,有 5 个单元格,但没有一个单元格是隐藏的。您可以通过在开始拖动后将 placeholder 内的第二个 td 设置为隐藏来解决此问题:

$(this).find('.placeholder-style td:nth-child(2)').addClass('hidden-td')

第二个问题是因为你拖拽的tr变成了position:absolute,不再具有表格的属性。您可以通过将 display: table 设置为该行来解决此问题:

ui.helper.css('display', 'table')

排序完成后,必须取消此更改。

以下是完整的更改:

start: function(event, ui) {
$(this).find('.placeholder-style td:nth-child(2)').addClass('hidden-td')
ui.helper.css('display', 'table')
},
stop: function(event, ui) {
ui.item.css('display', '')
}

这是一个工作示例

$('tbody').sortable({
items: ">tr",
appendTo: "parent",
opacity: 1,
containment: "document",
placeholder: "placeholder-style",
cursor: "move",
delay: 150,
start: function(event, ui) {
$(this).find('.placeholder-style td:nth-child(2)').addClass('hidden-td')
ui.helper.css('display', 'table')
},
stop: function(event, ui) {
ui.item.css('display', '')
}
});
.sort-table{
width: 100%;
border: 1px solid #cecece;
background-color: #d5a45a;
}
thead{
background-color: #0e79c4;
}
th{
font-size: 1em;
line-height: 1.375em;
font-weight: 400;
background-color: #0e79c4;
vertical-align: middle;
padding: 0.5em 0.9375em;
text-align: left;
}
tr{
border: 1px solid #cecece;
}
td{
padding: 1em;
vertical-align: middle;
display: table-cell;
border-top: 1px solid #cecece;
}
.hidden-td{
display: none;
}
.placeholder-style{
background-color: grey;
}
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<table class="sort-table">
<thead>
<tr>
<th class="header-td">Column1 </th>
<td class="hidden-td">row1 hidden td</td>
<th class="header-td">Column2 </th>
<th class="header-td">Column3 </th>
<th class="header-td">Column4 </th>
</tr>
</thead>
<tbody>
<tr>
<td class="body-td">row1 td1</td>
<td class="body-td hidden-td">row1 hidden td</td>
<td class="body-td">row1 td2</td>
<td class="body-td">row1 td3</td>
<td class="body-td">row1 td4</td>
</tr>
<tr>
<td class="body-td">row2 td1</td>
<td class="body-td hidden-td">row1 hidden td</td>
<td class="body-td">row2 td2</td>
<td class="body-td">row2 td3</td>
<td class="body-td">row2 td4</td>
</tr>
<tr>
<td class="body-td">row3 td1</td>
<td class="body-td hidden-td">row1 hidden td</td>
<td class="body-td">row3 td2</td>
<td class="body-td">row3 td3</td>
<td class="body-td">row3 td4</td>
</tr>
<tr>
<td class="body-td">row4 td1</td>
<td class="body-td hidden-td">row1 hidden td</td>
<td class="body-td">row4 td2</td>
<td class="body-td">row4 td3</td>
<td class="body-td">row4 td4</td>
</tr>
</tbody>
</table>

还有一个jsfiddle:http://jsfiddle.net/mjkq4fb6/

关于jQuery UI 可排序表格和单元格在拖动 tr 时缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39171688/

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