我的情况是我有一个包含列表项的人名列表,我希望能够将这些名称拖到框中。我通过jqueryUI得到了这个部分,但我的问题是,当名称被拖到框中时,我不希望它被移出原始列表,因为一个人可以在多个列表中。
我认为问题在于我使用的是.appendTo而不是.add,但它显然不像只是将.appendTo切换到.add
那么简单 $( this ).appendTo( $list ).show( "slow" );
整个代码:
$(function() {
$( "#sortable1, #sortable2, #sortable3" ).sortable().disableSelection();
var $tabs = $( "#tabs" ).tabs();
var $tab_items = $( "ul:first li", $tabs ).droppable({
accept: ".connectedSortable li",
hoverClass: "ui-state-hover",
drop: function( event, ui ) {
var $item = $( this );
var $list = $( $item.find( "a" ).attr( "href" ) )
.find( ".connectedSortable" );
ui.draggable.hide( "slow", function() {
$( this ).appendTo( $list ).show( "slow" );
});
}
});
});
请参阅下面的小提琴,了解工作示例和HTML标记 http://jsfiddle.net/sXRKd/1/
格拉西亚斯!
答案 0 :(得分:1)
希望,当你把一个人扔进另一个人时,它必须在两个地方都有用。例如,当您将josh mondie
放入Close Friends
时,必须同时使用All Friends
和Close Friends
。
看看这个fiddle,它正常工作。
代码,
drop: function (event, ui) {
var $droppableId = $("a", this).attr("href");
var $newList = $(".connectedSortable", $droppableId);
ui.draggable.hide("slow", function () {
$newList.append(ui.draggable.clone().show());
});
ui.draggable.show("slow");
}