我正在尝试自己制作一个非常简单的网格插件。当我想允许用户更改列顺序(不对表行进行排序,更改,例如显示在表右侧的第一列)时,我的问题就开始了。我正在使用 jQuery UI 可排序,但我发现当用户开始拖动 th 时,jquery ui 会在 thead 中添加一个新的 th。这使得最后一个(更靠近 table 右侧的那个)水平地离开 table !!
当我放下正在拖动的 th 时,添加的 th 会被删除,但在 Chrome 中,最后一个 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 */
}
});
抱歉我的英语不好,提前谢谢。
迭戈
更新:
如果帖子不清楚,请告诉我,我会尽力更改。谢谢!
最佳答案
我也遇到了同样的问题,最后找到了解决方法。基本上,JQuery UI Sortable 在首次创建元素时检查元素的方向。但是,如果该元素一开始就没有任何项目,则它永远不会被视为水平元素。解决方案是每次将项目放入可排序对象时销毁并重新创建可排序对象。具体代码可以参见我的博客:
http://www.judeosborn.com/post/5751510741/jquery-sortable-droppable-orientation-problem
我也向开发人员报告了这个问题:
关于jquery - 如何使用 jQuery UI 可排序对标题行进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3627130/