我试过在类似的问题中寻找答案,但我无法解决,我知道错误是由于jquery,DOM转换,但我无法解决问题,我试图使用追加();而不是appendChild();.我正在尝试实现拖放功能。
这是我的javascript :(评论的是我尝试过的方法)
$('#todo, #inprog').bind('drop', function(event) {
var notecard = event.originalEvent.dataTransfer.getData("text/plain");
event.target.appendChild(document.getElementById(notecard));
// var c = $(document.getElementById(notecard))[0];
// var c = $('#notecard')[0];
//event.target.innerHTML = document.getElementById(notecard);
//event.target.append(notecard);
//$(event.target).append(document.getElementById(notecard));
//$(event.target).append('#notecard');
//$('#notecard').appendTo(event.target);
event.preventDefault();
});
答案 0 :(得分:0)
原因是notecard
不是node
。
在代码中进行一些更改
$('#todo, #inprog').bind('drop', function(event) {
var notecardText = event.originalEvent.dataTransfer.getData("text/plain");
var notecard = document.createElement("div"); // Create a node first, div or p or span
notecard.appendChild(notecardText) // append your text to the node
event.target.appendChild(document.getElementById(notecard));
event.preventDefault();
});
答案 1 :(得分:0)
找到解决方案,没有为动态创建的元素加载DOM对象,我在创建它之前调用了js函数,因此event.originalEvent.dataTransfer.getData("text/plain");
返回null,因为当加载js时没有元素存在。我调用了创建DOM的函数来解决问题。
像这样'<div id="itemT'+j+'" name="task'+j+'" draggable="true" contenteditable class="cardTitle" ondragstart="dragS1(event)"></div>'