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
如何使用jQueryUISortable对thead行中的th进行排序?_Jquery_Jquery Ui_Grid_Jquery Ui Sortable - Fatal编程技术网

如何使用jQueryUISortable对thead行中的th进行排序?

如何使用jQueryUISortable对thead行中的th进行排序?,jquery,jquery-ui,grid,jquery-ui-sortable,Jquery,Jquery Ui,Grid,Jquery Ui Sortable,我正在尝试自己制作一个非常简单的网格插件。当我希望允许用户更改列顺序(不对表行进行排序、更改,例如在表的右侧显示的第一列)时,问题就开始了。我正在使用jQuery UI sortable,但我发现当用户开始拖动th时,jQuery UI会在thead中添加一个新th。这使得最后一个th(桌子右边的那个)水平地离开桌子 当我放下我正在拖动的th时,添加的th将被删除,但在Chrome中,最后一个th(移到右侧的,从表中移出的th)不会回到表中。在IE和FF中,它确实回到了表中,但拖动时的效果仍然非

我正在尝试自己制作一个非常简单的网格插件。当我希望允许用户更改列顺序(不对表行进行排序、更改,例如在表的右侧显示的第一列)时,问题就开始了。我正在使用jQuery UI sortable,但我发现当用户开始拖动th时,jQuery UI会在thead中添加一个新th。这使得最后一个th(桌子右边的那个)水平地离开桌子

当我放下我正在拖动的th时,添加的th将被删除,但在Chrome中,最后一个th(移到右侧的,从表中移出的th)不会回到表中。在IE和FF中,它确实回到了表中,但拖动时的效果仍然非常糟糕

我的代码:

table.find("thead>tr").sortable({
    axis: "x",
    placeholder: "ui-state-highlight",
    handle: ".sortable",
    start: function(event, ui) {
        /* I'm doing some stuff */
    },
    update: function(event, ui) {
        /* I'm doing some stuff */
    }
});
对不起,我的英语不好,提前谢谢

迭戈

更新:

如果帖子不清楚,请告诉我,我会尝试更改。谢谢

问题#1:Chrome(即webkit浏览器)漏洞尚未修复,但此处有相关记录: -

问题#2:使用axis'x'进行排序在jQuery 1.8.12中得到了改进,但仍然存在一个bug,它无法检测到指定了axis'x'。我在此提交了解决方案:
-

我也遇到了同样的问题,最终找到了解决办法。基本上,jQueryUISortable在第一次创建元素时检查元素的方向。但是,如果元素中没有任何项目,则永远不会将其视为水平元素。解决方案是在每次将项目放入可排序对象时销毁并重新创建该对象。具体代码可以在我的博客上找到:

我也向开发人员报告了这个问题:

不是一个解决方案(目前),而是一个黑客:

$var.sortable({
    placeholder: '.my-placeholder'
});

css:
.my-placeholder {
    display: none;
}

我现在考虑在某些事件期间隐藏占位符,或者尝试有条件地显示占位符。如果我有任何进展,我会更新,但是这个黑客程序在某种程度上解决了“额外列”问题。

没有。我必须使用ul,但我没有结束这个问题,因为我想知道怎么做。谢谢orolo,我会尝试一下。如果您有任何进展,请更新您的答案。