【发布时间】:2017-07-03 04:18:53
【问题描述】:
无法找到一个简单的解决方案让 jquery 的 sortable 在拖动元素期间保持表格的宽度,forcePlaceholderSize 这次实际上并没有工作,如果表格有一些大元素 - 如果我开始拖动它,那么表格的大小会调整为静止-table 元素的最大宽度,这就是我所做的:
jQuery("#sortable1").sortable({
items: "tbody:not([not-sortable])",
cursor: "move",
zIndex: 9999,
start: function (event, ui) {
var colW = jQuery(".faq_glyph_owner").width();
self.textWidth = ui.item.innerWidth() - colW * 3;
jQuery(".faq_text").width(self.textWidth);
jQuery("#sortable1").css("table-layout", "fixed");
ui.item.find("div").parent().width(self.textWidth + colW);
},
stop: function (event, ui) {
jQuery("#sortable1").css("table-layout", "auto");
}
});
所以我通常只是按应有的大小计算大小并将固定布局应用于表格here is sample of this with table。所以我的问题是:是否有任何内置方法可以在排序期间保持表格宽度,好像拖动的元素仍在表格内?请注意,我不想保持表格的布局固定。 p>
附:请忽略“jQuery”,我们仍然有旧的原型代码会干扰它
【问题讨论】:
-
您已经拥有的是实现此行为的最直接方法。
forcePlaceholderSize选项只会在占位符不可见的情况下设置占位符的大小(即,它是一个 0 宽度的矩形,在这里它不是)。如果你想彻底,创建一个新的小部件,从 sortable 继承,并编写一个自定义占位符,但对于类似的效果,这是很多额外的工作
标签: javascript jquery css jquery-ui