Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 拖放以重新排列行时,表及其行的宽度会发生变化_Jquery_Jquery Ui_Drag And Drop - Fatal编程技术网

Jquery 拖放以重新排列行时,表及其行的宽度会发生变化

Jquery 拖放以重新排列行时,表及其行的宽度会发生变化,jquery,jquery-ui,drag-and-drop,Jquery,Jquery Ui,Drag And Drop,我想有一个表,它允许我拖放来重新排序它的行 我发现这篇文章很有帮助: 本文给出了一个解决方案,其JSFIDLE示例如下: 下面是它的Javascript: var fixHelperModified = function(e, tr) { var $originals = tr.children(); var $helper = tr.clone(); $helper.children().each(function(index) { $(this).w

我想有一个表,它允许我拖放来重新排序它的行

我发现这篇文章很有帮助:

本文给出了一个解决方案,其JSFIDLE示例如下:

下面是它的Javascript:

var fixHelperModified = function(e, tr) {
    var $originals = tr.children();
    var $helper = tr.clone();
    $helper.children().each(function(index) {
        $(this).width($originals.eq(index).width())
    });
    return $helper;
},
    updateIndex = function(e, ui) {
        $('td.index', ui.item.parent()).each(function (i) {
            $(this).html(i + 1);
        });
    };

$("#sort tbody").sortable({
    helper: fixHelperModified,
    stop: updateIndex
}).disableSelection();
然而,在我看来,这个解决方案并没有完全奏效。如果你拖到“上帝保佑你,罗斯沃特先生”这一行,你知道我在说什么

这能修好吗


谢谢

这是因为宽度是动态更新的。如果找到最宽的
标题元素,然后将所有
标题元素设置为该宽度,则不会出现表格重新调整大小的问题

var maxWidth = 0;
$('#sort td:nth-child(3)').each(function(){
    if(maxWidth < $(this).width())
        maxWidth = $(this).width();
});

$('#sort td:nth-child(3)').css('width',maxWidth);
var maxWidth=0;
$(“#对td:n个子项(3)”进行排序。每个(函数(){
如果(maxWidth<$(this).width())
maxWidth=$(this.width();
});
$(“#排序td:n子项(3)”.css('width',maxWidth);
例如:


Trevor,这真是太聪明了。我没有想到这一点,尝试了其他一些事情。万分感谢!特雷弗,我还有另外一个因素,它破坏了你提供的解决方案。有什么想法吗?以下是帖子: