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