如何使用JavaScript实现拖放功能

5

I have a problem in javascript (drag and drop).

// I drag: <div id = "name">Name</div>     
   
<div class="color">white</div>
<div class="color">black</div>    
<div class="color">pink</div>    
//And drop here:
<div class="color">yellow</div>
<div class="color">green</div>
<div class="color">red</div>

//result:
<div class="color">white</div>
<div class="color">black</div>
<div class="color">pink</div>
<div id="name">
<div class="color">yellow</div>
<div class="color">green</div>
<div class="color">red</div>
</div>
 
//continue drag:<div id = "name">Name</div> other and drop above: <div class="color">green</div>
 
<div class="color">white</div>
<div class="color">black</div>
<div class="color">pink</div>
<div id="name">
<div class="color">yellow</div>
</div>
<div id ="name">
<div class="color">green</div>
<div class="color">red</div>
</div>

如何使用JavaScript进行拖放。仅限使用JavaScript。请帮我提供想法或示例代码!谢谢大家!
我的代码示例如下:
function addDrag(obj,kind){
addEvent(obj, 'dragstart', function (e) {
    dragSrcEl = obj;
    e.dataTransfer.setData('text/html', obj.innerHTML);
});

addEvent(obj, 'dragover', function (e) {
    if (e.preventDefault) e.preventDefault(); // allows us to drop  
    $(obj).addClass('dragover');
    e.dataTransfer.dropEffect = 'copy';
    return false;
});
..........

问题在于当我将“Name”下的任何位置,class="color"拖放到“Name”的子级下时......“Name”是父级。该如何编写代码!请帮助我!

4
可能是Javascript拖放的重复。 - T3 H40
1个回答

0
<!DOCTYPE HTML>
<html>
<head>
<style>
#div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}
</style>
<script>
function allowDrop(ev) {
    ev.preventDefault();
}

function drag(ev) {
    ev.dataTransfer.setData("text", ev.target.id);
}

function drop(ev) {
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<p>Drag the W3Schools image into the rectangle:</p>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

</body>
</html>

谢谢你,"Anshu"。但是问题是当我提取“Name”并将其放置在任何位置时,类=“color”位于“Name”的子级下...“Name”是父级。请帮帮我!:( - bamboo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接