【发布时间】:2012-06-24 03:36:48
【问题描述】:
这个在sortable函数中拖拽时表格行缩小的问题困扰了我很久。有什么答案吗? (问答)
附:为了让 sortable 在表上工作,您必须在要排序的表行周围使用 TBODY,然后在包含的 TBODY 上调用 sortable 函数。
【问题讨论】:
标签: jquery jquery-ui html-table jquery-ui-sortable shrink
这个在sortable函数中拖拽时表格行缩小的问题困扰了我很久。有什么答案吗? (问答)
附:为了让 sortable 在表上工作,您必须在要排序的表行周围使用 TBODY,然后在包含的 TBODY 上调用 sortable 函数。
【问题讨论】:
标签: jquery jquery-ui html-table jquery-ui-sortable shrink
src jquery-1.12.4.js
src jquery-ui.js
链接 rel jquery-ui.css
@model Servidor.CListados
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm())
{
<h2>Listados</h2>
<h2>@ViewBag.Mensaje</h2>
<table>
<tr>
<th>Campo1</th>
<th>Campo2</th>
</tr>
<tbody id="sortable">
@foreach (var item in Model.ListaTabla1)
{
<tr >
<td>@Html.DisplayFor(modelItem => item.Campo1)</td>
<td>@Html.DisplayFor(modelItem => item.Campo2)</td>
</tr>
}
</tbody>
</table>
@*<ul id="sortable">
@foreach (var item in Model.ListaTabla1)
{
<li>@Html.DisplayFor(modelItem => item.Campo1)</li>
}
</ul>*@
}
<script>$("#sortable").sortable();</script>
【讨论】:
我在网上偶然发现了一个解决方案。
var fixHelper = function(e, ui) {
ui.children().each(function() {
$(this).width($(this).width());
});
return ui;
};
$(“#sort tbody”).sortable({
helper: fixHelper
}).disableSelection();
【讨论】:
所提供的解决方案都不适合我。
在我的例子中,jQuery 的 ui sortable 计算的高度和宽度被向下舍入并通过 style 属性覆盖自动计算的尺寸。
这是我为解决问题所做的,我发现它比大多数提供的解决方案更优雅。 (即使里面有!importants。)
.ui-sortable-helper {
width: auto !important;
height: auto !important;
}
【讨论】:
.ui-sortable-helper {
display: table;
}
【讨论】:
您需要做的就是为表格单元格指定特定的像素宽度。我们如何在不知道表格单元格内容的情况下做到这一点?简单:
$(document).ready(function(){
$('td').each(function(){
$(this).css('width', $(this).width() +'px');
});
});
【讨论】: