使用JQuery-Ui Droppable定位拖动,删除和追加的项目
我正在使用JQuery-ui draggable&droppable。 我想将删除的元素添加到drop-target容器中,同时保留它在删除时的明显位置。 使用.html()可以保留.draggable()函数添加的位置数据,但由于它们成为新元素的子元素,因此它们会捕捉到相对于该元素的新位置。 我试用了helper:clone,但发现它删除了所有定位信息。
这是我的代码,它将删除的项添加到放置目标,并在每次删除上一个项时生成一个新的拖动项。 它起作用,除了掉落元素的定位是错误的 – 它们应该保持它们在掉落时的视觉位置。
var $foo = 1; var bar = "drag-" + $foo; $(".origin div").addClass(bar); $( ".origin div" ).draggable({ containment: ".modal" }); $( ".droppable" ).droppable({ accept: ".origin div", drop: function( event, ui ) { $(".droppable").append($('.origin').html()); succeed(); } }); function succeed() { $foo++; var bar = "drag-" + $foo; $('.origin').html("Drag " ); $(".origin div").addClass(bar); $( ".origin div" ).draggable({ containment: ".modal" }); }
加价:
Drag accept: '#draggable'
这是一个JSFiddle:
http://jsfiddle.net/jrX2M/1/
我们非常欢迎有关调查可能性的建议!
解决了绝对定位。 将子元素追加到隐藏的,绝对定位的div“accept”,并手动将子元素位置更改为“absolute”:
JQuery:var $ foo = 1; var bar =“drag-”+ $ foo;
$(".origin div").addClass(bar); $( ".origin div" ).draggable({ containment: ".modal" }); $( ".droppable" ).droppable({ accept: ".origin div", drop: function( event, ui ) { $(".accept").append($('.origin').html()); $(".accept div").css("position", "absolute"); succeed(); } }); function succeed() { $foo++; var bar = "drag-" + $foo; $('.origin').html("Drag " ); $(".origin div").addClass(bar); $( ".origin div" ).draggable({ containment: ".modal" }); }
加价:
Drag accept: '#draggable'