为什么当我拖放2 " android“时,在#docs中有3”我希望每个android在#dz“中有1里?当我掉下3等等..。
$("#dz").droppable({
accept: ".systeme",
drop: function(e, ui) {
$(ui.draggable).clone().appendTo($("#dz"));
setTimeout(function(){
$("#dz .android").each(function() {
$("#docs").append("<li>i want one li for each android inside #dz</li>");
}, 10);
});
}https://codepen.io/Cyril29/pen/dybLaam
谢谢!
发布于 2019-09-27 20:15:52
因为你添加了,“我想在#dz中为每个安卓系统安装一里”。
当你在#dz中已经有了一个" android“的时候,已经有了一个”我要在#dz中为每个android安装一个i“。
当你放下第二个"Android“$("#dz .android").each() 2次调用2次(在1次中添加了2新的)
解决方案1:
drop: function(e, ui) {
$(ui.draggable).clone().appendTo($("#dz"));
setTimeout(function(){
$("#docs").empty() // remove all elements in #docs
$("#dz .android").each(function() {
$("#docs").append("<li>i want one li for each android inside #dz</li>");
}, 10);
});
}解决方案2:
drop: function(e, ui) {
$(ui.draggable).clone().appendTo($("#dz"));
setTimeout(function(){
$("#docs").append("<li>i want one li for each android inside #dz</li>");
});
}发布于 2019-09-27 20:18:52
这是因为您使用$each函数循环通过$("#dz .android")。
首先出现一个li元素,因为只有一个.android要循环。
在第二次尝试中,第一个li 仍然存在,并且您已经拖了另一个。现在,$("#dz .android")中存在着两个。
因此,每个循环会触发两次,这将创建另外两个li。因此,现在有3个list元素。
在第三个可拖放的事件中,创建了3个li,并将其添加到现有的3个中,因此总共有6个。
https://stackoverflow.com/questions/58140741
复制相似问题