【发布时间】:2014-10-31 10:04:15
【问题描述】:
我想将可排序容器的 div 拖放到可放置的 div(不可排序)上。我曾尝试使用 html5 拖放事件,但没有一个被触发。 最重要的是,可排序容器上的 dragstart 事件不会被触发。 有人可以建议我一个解决方案。我只想触发 dragstart 事件。这是我的完整代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Sortable - Handle empty divsts</title>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<style>
.draggableDivs{
background-color: orange;
border: solid black;
}
</style>
</head>
<body>
<div id="sortable" style="float: left;">
<div class="draggableDivs" draggable="true">Can be dropped !!..</div>
<div class="draggableDivs" draggable="true">..on an empty list</div>
<div class="draggableDivs" draggable="true">Item 3</div>
<div class="draggableDivs" draggable="true">Item 4</div>
<div class="draggableDivs" draggable="true">Item 5</div>
</div>
<div id="dropTarget" style="width: 500px; height: 500px; background-color: skyblue; float: left; text-align: center">
<h4>Drop Here</h4>
</div>
<script>
$("#sortable").sortable();
document.getElementById('sortable').addEventListener('dragstart', function(evt) {
console.log("The 'dragstart' event fired.");
evt.dataTransfer.setData('text', evt.target.textContent);
}, false);
</script>
</body>
</html>
【问题讨论】:
-
你在哪里设置 div 是可拖动的?
draggable="true" -
你需要为div添加jQuery代码#droppable $( "#droppable" ).droppable({accept: "div"});
-
@Darren,我认为可排序元素默认是可拖动的。如果我穿坏了,请纠正我。
-
@WisdmLabs: 试过 $( "#droppable" ).droppable({accept: "div"});没有运气。
-
请参阅此 SO 帖子 stackoverflow.com/questions/14308290/…
标签: javascript jquery html jquery-ui