javascript - 按下自身时的javascript ondrag
问题描述
在 div 里面我有一组 p 元素。我想将选定的元素拖到输入示例:
var input = document.getElementById("test");
input.addEventListener('drop', function (event) {
event.preventDefault();
var textData = event.dataTransfer.getData('text'); // get the dragged value
var oldval = event.target.value; // get the old value in the input
var newval = oldval + textData; // add it with the value which is dragged upon
event.target.value = newval; // change the value with the new value
});
document.querySelector('[draggable="true"]').addEventListener('dragstart', function(e){
e.dataTransfer.setData('text', e.target.innerHTML);
});
<input id="test" placeholder='drag here'/>
<div>
<p draggable="true"> Tag 1</p>
<p draggable="true"> Tag 2</p>
<p draggable="true" > Tag 3</p>
</div>
如何在拖动多个元素中的任何一个时,从 p 元素中获取文本并将其放入输入中,并在它们之间切换以防通过 JavaScript 或 JQuery 选择另一个元素
解决方案
querySelector
仅针对第一个元素,使用querySelectorAll获取所有段落的列表,然后将事件绑定到每个段落
var input = document.getElementById("test");
input.addEventListener('drop', function(event) {
event.preventDefault();
var textData = event.dataTransfer.getData('text'); // get the dragged value
var oldval = event.target.value; // get the old value in the input
var newval = oldval + textData; // add it with the value which is dragged upon
event.target.value = newval; // change the value with the new value
});
document.querySelectorAll('[draggable="true"]').forEach(paragraph => {
paragraph.addEventListener('dragstart', function(e) {
e.dataTransfer.setData('text', e.target.innerHTML);
})
});
<input id="test" placeholder='drag here' />
<div>
<p draggable="true"> Tag 1</p>
<p draggable="true"> Tag 2</p>
<p draggable="true"> Tag 3</p>
</div>
推荐阅读
- scala - Passing scalac opts to Maven from the command-line or environment
- c# - 如何在 .nuspec 文件中包含来自自定义提要的引用?
- python - How to add access to certain service account, specific Google Storage Bucket via Python?
- asp.net - MVC Core - 在某些 API 响应上重定向到登录(需要身份验证)
- javascript - 使用 chrome.webRequest api 监控下载请求,但 tabid 是-1,我怎样才能得到正确的 tabid?
- c# - 不同的 HTTP 调用,等待相同的任务
- c# - 如何在 asp.net mvc c# 应用程序中接收多个帐户的贝宝付款?
- anychart - 当 x 轴设置为日期时间格式时,图表变得堆叠
- ios - 如何在 ios PWA 中存储相机权限?
- python - Python Discord.py Bot 间隔消息发送