我希望一些图像尽可能多地放在目标区域。但是图像只下降了一次。我的jQuery UI代码:
$(function() {
$( ".draggable img").draggable({
revert: "invalid",
appendTo: "#droppable",
helper: "clone"
});
$( "#droppable" ).droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
drop: function( event, ui ) {
$( this ).find( ".placeholder" ).remove();
var image = $(".ui-draggable");
$( "<img />" ).image.src.appendTo( this );
}
});
});
请参阅此处的演示:jsFiddle example
从示例中您可以看到图像仅在第一次 因此,例如,用户可以将图像拖放5次,并且在目标区域中将有5个图像克隆。我怎么能这样做? 答案 0 :(得分:3) 你快到了。您确实需要 作为评论:我强烈推荐上面描述的方法,因为最好在1 个答案:
helper: "clone"
属性。执行此操作的最佳方法是使用.clone()在drop事件触发时创建新的克隆。然后只需初始化它就完成了:$(function() {
$(".draggable img").draggable({
revert: "invalid",
helper: "clone"
});
$("#droppable").droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
drop: function(event, ui) {
var newClone = $(ui.helper).clone();
$(this).after(newClone);
}
});
});
DEMO
drop
的{{1}}事件中制作克隆然后绑定droppable
活动到dragstop
。这是因为否则会产生太多克隆:我的代码确保不会产生冗余克隆。要查看我的意思,请打开this jsFiddle(使用错误的方法:克隆在dragstop 上)并尝试删除之外的可拖动 >指定区域。会发生什么是冗余克隆将添加到DOM。这既低效又丑陋,应该避免。 子>