我正在学习如何实现拖放并选择下拉表格。此下拉列表显示几个选项,我希望用户能够将选项文本拖动到另一个框中。
根据this tutorial我要做的就是set the draggable attribute to true
。
我尝试过以下操作,但拖动似乎不起作用:
<div class="container">
<label>My List</label>
<select class="form-control">
{{#each my_list}}
<option value="{{this}}" draggable="true">{{this}}</option>
{{/each}}
</select>
</div>
我还尝试过使用jquery UI:
<div class="container">
<label>My List</label>
<select class="form-control">
{{#each my_list}}
<option value="{{this}}" id="draggable">{{this}}</option>
{{/each}}
</select>
</div>
<script>
$( "#draggable" ).draggable();
</script>
任何想法都会有所帮助!
答案 0 :(得分:0)
从w3Schools本身检查:
http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop
<!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>
只是set the draggable attribute to true
无法工作。你必须做更多。
这里发生了什么:
当您开始拖动drag(event)
被叫时,它会通过dataTransfer.setData保存它的ID。当你放下矩形时,drop(ev)
通过先前保存的ID获取元素并将其附加到自身。所以它将在那个矩形中。