jquery各功能及拖放jqueryui
jquery each function and drag and drop jquery ui
为什么当我拖放 2 "Android" 时,#docs 中有 3 "i want one li for each android inside #dz"?和 6 当我放下 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
谢谢!
因为你add"i want one li for each android inside #dz"
When u already have 1 "Android" in #dz
already 1 "i want one li for each android inside #dz"
当你放弃第二个 "Android" $("#dz .android").each()
调用 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>");
});
}
是因为你在使用$each函数循环遍历$("#dz .android")
。
第一个 li
元素出现,因为只有一个 .android
可以循环。
在第二次尝试时,第一个 li
仍然存在 而您已将另一个拖过来。 $("#dz .android")
.
中现在有两个
因此,每个循环都会触发两次,从而创建另外两个 li
。因此,现在有 3 个列表元素。
在第三个可拖动事件中,创建了 3 个 li
,并将其添加到现有的 3 个中。因此总共有 6 个。
为什么当我拖放 2 "Android" 时,#docs 中有 3 "i want one li for each android inside #dz"?和 6 当我放下 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
谢谢!
因为你add"i want one li for each android inside #dz"
When u already have 1 "Android" in #dz
already 1 "i want one li for each android inside #dz"
当你放弃第二个 "Android" $("#dz .android").each()
调用 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>");
});
}
是因为你在使用$each函数循环遍历$("#dz .android")
。
第一个 li
元素出现,因为只有一个 .android
可以循环。
在第二次尝试时,第一个 li
仍然存在 而您已将另一个拖过来。 $("#dz .android")
.
因此,每个循环都会触发两次,从而创建另外两个 li
。因此,现在有 3 个列表元素。
在第三个可拖动事件中,创建了 3 个 li
,并将其添加到现有的 3 个中。因此总共有 6 个。