JQuery ui可排序拖动问题

use*_*151 3 jquery user-interface jquery-ui-sortable

iam使用jquery ui 10.1.3,当垂直拖动行时,拖动行的宽度有小的偏移.当看到论坛时看起来像下面的bug代表它.我的表有不可见的列(隐藏列).

我们有什么解决办法吗?

http://bugs.jqueryui.com/ticket/9979

https://github.com/jquery/jquery-ui/commit/9711c54c6d3d7ecffa9bfccc205522be1f4aa148

mus*_*ing 5

这里的问题是jQueryUI正在添加一个占位符行,其类为ui-sortable-placeholder.占位符设置为visibility:hidden.这意味着您无法看到它,但它会占用通常可见的空间.

在这个JSBin中,每行的第二列都是隐藏的.这意味着第二列不会占用任何空间.这里的问题是,当jQueryUI创建占位符列时,它不会隐藏第二列.

看看这个JSFiddle,你会明白我的意思.占位符在第一列和第二列之间添加了一个蓝色列.

你可以摆脱这种多种方式.一,通过硬编码CSS隐藏第二列,如此处所示,并在此代码中:

.ui-sortable-placeholder td:nth-child(2)
{
    display:none;
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是添加一些代码来隐藏占位符中隐藏在真实表中的列,如下所示,并在此代码中:

sort: function (e, ui) {
    ui.placeholder.find('td').each(function (key, value) {
        //alternative: if (!ui.item.find('td').hasClass('hidden')) $(this).show();
        if (ui.helper.find('td').eq(key).is(':visible')) $(this).show();
        else $(this).hide();
    });
}
Run Code Online (Sandbox Code Playgroud)