我的场景是,我有一个包含在列表项中的人名列表,我希望能够将这些名字拖到框中。我通过 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 标记,请参阅下面的 fiddle 。
http://jsfiddle.net/sXRKd/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");
}
关于javascript - jqueryUI - 将项目拖到多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14048767/