我有以下 JQuery 设置将项目从列表拖放到不同的列表中:
// Set what items are draggable
$(".widgetListItems").draggable(
{
cursor: "move",
opacity: 0.5,
scroll: false,
revert: "invalid",
connectToSortable: "#dropList",
stop: function (event, ui) { if (deleteItem) { ui.helper.remove(); deleteItem = false; } }
});
// Set what items can have objects dropped into them.
$(".dropableArea").droppable(
{
accept: ".widgetListItems",
tolerance: "touch",
drop: function (event, ui)
{
deleteItem = true;
var item = $(ui.draggable).text();
item = $.trim(item);
switch (item)
{
case "Preventative Care":
$(this).append($("#panelPreventative"));
$("#panelPreventative").show(1000);
break;
case "Medical Claims":
$(this).append($("#panelMedicalClaims"));
$("#panelMedicalClaims").show(1000);
break;
case "Capitation":
$(this).append($("#panelCapitation"));
$("#panelCapitation").show(1000);
break;
}
}
});
$(".dropableArea").sortable(
{
cursor: "move",
connectWith: ".dropableArea",
update: function (event, ui)
{
$(ui.item).css("margin", "30px 0px");
}
});
我有一个<li>
类“widgetListItems”,用户可以将其拖到屏幕上。接下来,droppable 是一个<ul>
类“dropableArea”。我希望用户拥有的体验是,一旦他们将项目放入列表中,他们丢弃的项目就会被删除,并且会显示一个带有类“loadedWidgetPanel”的小部件。这就是我在“drop”事件中所做的。我也想要这个列表,用户可以将内容放入可排序的列表中。使用我拥有的代码,用户可以将项目放入列表中,显示小部件,并且一旦它们在页面上,他们就可以对小部件进行排序。
我想知道的是,是否可以对该列表进行排序,以便当用户将元素放入列表时,小部件会插入到用户放置它的位置,而不是在末尾附加。我知道它被附加是因为我在“drop”事件中所做的事情,但我想不出另一种方法来插入不同的项目。有人可以帮我吗?