简体   繁体   English

javascript中如何获取拖动项的文本

[英]How to get the text of dragged item in javascript

I am learning about drag and drop and I created this simple script (Run script) to check我正在学习拖放,我创建了这个简单的脚本(运行脚本)来检查

 function onDrag(ev) { console.log('You are dragging', ev.target.className) } function onDrop(ev) { ev.preventDefault(); var ul = ev.target; var li = document.createElement('li'); li.appendChild(document.createTextNode("Text?")); ul.parentElement.appendChild(li); } function onOverDrop(ev) { ev.preventDefault(); }
 ul, li{border:1px solid green}.container-left, .container-right {width:45%; margin-left:1%; float:left}
 <div class="container-left"> <ul> <li class="A" draggable="true" ondragstart="onDrag(event)">A</li> <li class="B" draggable="true" ondragstart="onDrag(event)">B</li> <li class="C" draggable="true" ondragstart="onDrag(event)">C</li> <li class="D" draggable="true" ondragstart="onDrag(event)">D</li> </ul> </div> <div class="container-right"> <ul> <li> 1 <ul ondrop="onDrop(event)" ondragover="onOverDrop(event)"> <li class="1"></li> </ul> </li> <li> 2 <ul ondrop="onDrop(event)" ondragover="onOverDrop(event)"> <li class="2"></li> </ul> </li> <li> 3 <ul ondrop="onDrop(event)" ondragover="onOverDrop(event)"> <li class="3"></li> </ul> </li> <li> 4 <ul ondrop="onDrop(event)" ondragover="onOverDrop(event)"> <li class="4"></li> </ul> </li> </ul> </div>

The issue I have is that inside onDrop method I would like the text and class of the item I am dragging.我遇到的问题是在onDrop方法中我想要我拖动的项目的文本和 class。 For example when I drag A into the right side and drop it, instead of getting Text?例如,当我将A拖到右侧并将其放下,而不是获取Text? I want to get A我想得到A

Create a variable to store the classname of the item you're dragging, append the ev.target.className to the variable on drag.创建一个变量来存储您正在拖动的项目的类名,append ev.target.className到拖动时的变量。

 let classNameOfItem = '' function onDrag(ev) { console.log('You are dragging', ev.target.className) classNameOfItem = ev.target.className } function onDrop(ev) { ev.preventDefault(); var ul = ev.target; var li = document.createElement('li'); li.appendChild(document.createTextNode(classNameOfItem)); ul.parentElement.appendChild(li); } function onOverDrop(ev) { ev.preventDefault(); }
 ul, li{border:1px solid green}.container-left, .container-right {width:45%; margin-left:1%; float:left}
 <div class="container-left"> <ul> <li class="A" draggable="true" ondragstart="onDrag(event)">A</li> <li class="B" draggable="true" ondragstart="onDrag(event)">B</li> <li class="C" draggable="true" ondragstart="onDrag(event)">C</li> <li class="D" draggable="true" ondragstart="onDrag(event)">D</li> </ul> </div> <div class="container-right"> <ul> <li> 1 <ul ondrop="onDrop(event)" ondragover="onOverDrop(event)"> <li class="1"></li> </ul> </li> <li> 2 <ul ondrop="onDrop(event)" ondragover="onOverDrop(event)"> <li class="2"></li> </ul> </li> <li> 3 <ul ondrop="onDrop(event)" ondragover="onOverDrop(event)"> <li class="3"></li> </ul> </li> <li> 4 <ul ondrop="onDrop(event)" ondragover="onOverDrop(event)"> <li class="4"></li> </ul> </li> </ul> </div>

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

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