简体   繁体   English

如何在JS中拖放if..else语句

[英]How to set if..else statement in JS drag and drop

The result i want from the the below code is: 1. There are three text: Drag me!, Drag me2!, Drag me3! 我想从下面的代码中得到的结果是:1.有三个文本:Drag me!,Drag me2!,Drag me3!。 2. One of the text will be drag to the last empty box 3. demo2 will display the text of the drop text 2.文本之一将被拖到最后一个空框。3. demo2将显示放置文本的文本。

But what i have done will only display the "Drag me3!" 但是我所做的只会显示“拖动me3!”。 How can I done the 1, 2 & 3 by using if...else statement? 如何使用if ... else语句完成1、2和3?

 function dragStart(ev) { ev.dataTransfer.setData("Text", ev.target.id); document.getElementById("demo").innerHTML = "Started to drag the p element"; } function allowDrop(ev) { ev.preventDefault(); } function drop(ev) { ev.preventDefault(); var data = ev.dataTransfer.getData("Text"); ev.target.appendChild(document.getElementById(data)); document.getElementById("demo").innerHTML = "The p element was dropped"; var x = document.getElementById("dragtarget1").textContent; var y = document.getElementById("dragtarget2").textContent; var z = document.getElementById("dragtarget3").textContent; document.getElementById("demo2").innerHTML = x; document.getElementById("demo2").innerHTML = y; document.getElementById("demo2").innerHTML = z; } 
 .droptarget { float: left; width: 100px; height: 35px; margin: 15px; padding: 10px; border: 1px solid #aaaaaa; } 
 <div class="droptarget" ondrop="drop(event)" ondragover="allowDrop(event)"> <p ondragstart="dragStart(event)" draggable="true" id="dragtarget1">Drag me!</p> </div> <div class="droptarget" ondrop="drop(event)" ondragover="allowDrop(event)"> <p ondragstart="dragStart(event)" draggable="true" id="dragtarget2">Drag me2!</p> </div> <div class="droptarget" ondrop="drop(event)" ondragover="allowDrop(event)"> <p ondragstart="dragStart(event)" draggable="true" id="dragtarget3">Drag me3!</p> </div> <div class="droptarget" ondrop="drop(event)" ondragover="allowDrop(event)"></div> <p style="clear:both;"><strong>Note:</strong> drag events are not supported in Internet Explorer 8 and earlier versions or Safari 5.1 and earlier versions.</p> <p id="demo"></p> <p id="demo2"></p> 

The reason why you are seeing the behavior that you listed above is because of your line of code var x = document.getElementById("dragtarget").textContent; 之所以看到上面列出的行为,是因为您的代码行var x = document.getElementById("dragtarget").textContent; . What this code is doing is getting the text context of the element with that specific ID ( dragtarget ) and setting it to the inner HTML content of the id=demo2 every time. 这段代码要做的是获取具有特定ID( dragtarget )的元素的文本上下文,并将其dragtarget设置为id=demo2 dragtarget的内部HTML内容。 Instead of searching for a specific element with a specific ID, you need to use a more dynamic solution that looks in the event object received by the drop() function to determine what text to set in the demo2 element. 您需要使用更具动态性的解决方案来查找drop()函数接收到的事件对象,以确定在demo2元素中要设置的文本,而不是搜索具有特定ID的特定元素。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM