Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建要拖放元素的动态div时无法拖放元素_Javascript_Html_Jquery_Ecmascript 6_Drag And Drop - Fatal编程技术网

Javascript 创建要拖放元素的动态div时无法拖放元素

Javascript 创建要拖放元素的动态div时无法拖放元素,javascript,html,jquery,ecmascript-6,drag-and-drop,Javascript,Html,Jquery,Ecmascript 6,Drag And Drop,继续我以前的工作。它工作得很好。但是,当我动态创建插入li元素的div时,我无法将元素插入其中 我正在使用基本的HTML拖放功能。为什么拖放时的会使用动态创建的div 这是我的密码: ['harry'、'Hermine'、'ron'、'ginny'、'luna']等。forEach(met=>{ $(`char`)。追加(` ${met} `); }); $('.pickTarget')。单击(函数(){ 让未选中=$('.pickTarget:checked')。长度>=3; $('.pic

继续我以前的工作。它工作得很好。但是,当我动态创建插入li元素的div时,我无法将元素插入其中

我正在使用基本的HTML拖放功能。为什么拖放时的
会使用动态创建的div

这是我的密码:

['harry'、'Hermine'、'ron'、'ginny'、'luna']等。forEach(met=>{
$(`char`)。追加(`
${met}
`);
});
$('.pickTarget')。单击(函数(){
让未选中=$('.pickTarget:checked')。长度>=3;
$('.pickTarget')。未(“:选中”).attr(“已禁用”,未选中);
});
$('.pickTarget').change(函数(){
if($(this).is(':checked'))$(this.parent().append(`Drag Number`);
else$(`drop`{this.value}`).remove();
});
$('#list').on('dragstart','li',function(e){e.originalEvent.dataTransfer.setData('text',e.target.id);});
变量$target=$('.target');
var$list=$(“#list”);
$target.on('drop',函数(e){
e、 预防默认值();
让data=e.originalEvent.dataTransfer.getData('text');
$list.append($(this.html());
$(this.html($(`${data}');
});
$target.on('dragover',函数(e){e.preventDefault();})


字符(选择3)
  • 一个
  • 两个
  • 三个

您的目标div是动态创建的,因此您需要将其与dom中已经存在的静态元素绑定。因此,只需在('drop'、'.target'、…
上使用
$(“#char”).on('drop'、'.target'),并对dragover事件使用相同的方法

此外,在您的代码中,当用户取消选中复选框时,如果在
target
div中有任何
li
项,它们也会被删除。相反,您可以检查目标div是否有任何名为
list group item
的类,如果是,则只需克隆该元素,然后将其附加到
列表中,最后删除whole组

演示代码

['harry'、'Hermine'、'ron'、'ginny'、'luna']等。forEach(met=>{
$(`char`)。追加(`
${met}
`);
});
$('.pickTarget')。单击(函数(){
让未选中=$('.pickTarget:checked')。长度>=3;
$('.pickTarget')。未(“:选中”).attr(“已禁用”,未选中);
});
$('.pickTarget').change(函数(){
如果($(this).is(':checked')){
$(this.parent().append(`Drag Number`);
}否则{
//检查div中是否有li项
if($(`drop`{this.value}`).find(“.list group item”).length>0){
var clone=$(`#drop${this.value}`).查找(“.list group item”).clone()//是克隆它
$(“#list.+this.value).remove();//删除拖动编号span
$(“#list”).append($(克隆))//在列表中再次追加li
}
$(`drop`{this.value}`).remove();//最后删除div
//您可以在此处编写排序lis..的代码
}
});
$('#list')。关于('dragstart','li',函数(e){
e、 originalEvent.dataTransfer.setData('text',e.target.id);
});
var$list=$(“#list”);
//改变这个
$(“#char”).on('drop','.target',函数(e){
e、 预防默认值();
让data=e.originalEvent.dataTransfer.getData('text');
$list.append($(this.html());
$(this.html($(`${data}');
});
//改变这个
$(“#char”).on('dragover','.target',函数(e){
e、 预防默认值();
});


字符(选择3)
  • 一个
  • 两个
  • 三个