有没有办法让jQuery可排序列表显示一个占位符,当你将一个项目拖出来进行排序时,初始项目的位置是什么?
即。当用户去我的列表中的一个LI时,我想要一个矩形轮廓来显示他们拖动的那个来自哪里。
答案 0 :(得分:9)
简短版本:您可以使用sortable的start
事件处理程序来显示原始项目,并根据需要修改其外观。 E.g:
$(listOfStuff).sortable({
start: function (e, ui) {
ui.item.show().addClass('original-placeholder');
});
使用上述内容,当用户开始拖动时,不是原始项目消失,而是保持其原始位置,它将获得“原始占位符”。
发生了什么事(据我所知):
start
功能。我对内部人员并不是特别熟悉,但我想其他人可能会更多地谈论推动这种技术的发展程度。
答案 1 :(得分:0)
如果您知道要移动的项目的位置,您可以使用一个子功能,表示当li处于被拖动的状态时,第n个li有一个虚线边框。
我不确定我是否可以将代码排除在我的头顶之外,但基本上,当正在运行的可排序函数时,它会在实际DOM中上下移动其他列表项,因此,例如,如果你将第3个列表项的css设置为带有虚线边框,那么列表项是否像疯了一样移动并不重要,因为无论哪个滑入该位置都将成为第3个列表项,从而获得虚线边框
你不能做的是当用户移动东西(我不相信)时,插槽保持空置,因为列表项目在视觉上不会为掉落腾出空间。基本上当您拖动项目时,DOM正在调整以向下滑动缺失列表项目的位置......