bootstrap:如何从下拉列表中拖动文本选择

时间:2016-09-03 06:36:48

标签: javascript jquery html twitter-bootstrap

我正在学习如何实现拖放并选择下拉表格。此下拉列表显示几个选项,我希望用户能够将选项文本拖动到另一个框中。

根据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>

任何想法都会有所帮助!

1 个答案:

答案 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获取元素并将其附加到自身。所以它将在那个矩形中。