我正在完成任务管理系统的重写,并且正在添加拖放功能。
我希望用户能够从一列(TD)拖动任务DIV并将其放入另一列(TD)。我有这个工作正常,除了一些小的格式问题。我有一个名为droppable的类,它接受可拖动的类。我想要发生的事实上是从当前的TD中删除任务DIV并将其附加到TD上。
这是我的剧本:
<script type="text/javascript">
$(function() {
$(".draggable").draggable({
cursor: 'move',
cancel: 'a',
revert: 'invalid',
snap: 'true'
});
});
$(function() {
$(".droppable").droppable({
accept: '.draggable',
hoverClass: 'droppable-hover',
drop: function(event, ui) { }
});
});
</script>
这是我的Html:
<h3>
My Queue</h3>
<table style="width: 100%;" class="queue">
<tbody>
<tr>
<td style="width: 14%; vertical-align:bottom ;" class="droppable" id="StagePG">
</td>
<td style="width: 14%; vertical-align:bottom ;" class="droppable" id="StageRY">
</td>
<td style="width: 14%; vertical-align:bottom ;" class="droppable" id="StagePR">
<div class="queue-item draggable" title="Task description goes here.">
<em>Customer</em>
<strong>Project</strong>
<h4><a href="/Sauron/Task/Details/100001">100001</a></h4>
</div>
<div class="queue-item draggable" title="Task description goes here.">
<em>Customer</em>
<strong>Project</strong>
<h4><a href="/Sauron/Task/Details/100002">100002</a></h4>
</div>
</td>
<td style="width: 14%; vertical-align:bottom ;" class="droppable" id="StageRT">
</td>
<td style="width: 14%; vertical-align:bottom ;" class="droppable" id="StageTE">
</td>
<td style="width: 14%; vertical-align:bottom ;" class="droppable" id="StageRL">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td style="width: 14%; text-align: center;">
Pending (0)
</td>
<td style="width: 14%; text-align: center;">
Ready (0)
</td>
<td style="width: 14%; text-align: center;">
In Progress (2)
</td>
<td style="width: 14%; text-align: center;">
Ready for Testing (0)
</td>
<td style="width: 14%; text-align: center;">
Testing (0)
</td>
<td style="width: 14%; text-align: center;">
Ready for Release (0)
</td>
</tr>
</tfoot>
</table>
挣扎于drop事件以及如何实现它。任何帮助表示赞赏!
答案 0 :(得分:2)
此示例有效,但仍有待观察,因为div位于任何位置。这是有效的,因为事件首先被触发“droppable”而不是“draggable”
$(function() {
$_dropEnd = null;
$(".draggable").draggable({
cursor: 'move',
cancel: 'a',
revert: 'invalid',
snap: 'true',
stop: function(event, ui) {
$(this).appendTo($_dropEnd);
$_dropEnd = null;
}
});
});
$(function() {
$(".droppable").droppable({
accept: '.draggable',
hoverClass: 'droppable-hover',
drop: function(event, ui) {
$_dropEnd = this;
}
});
});
答案 1 :(得分:0)
正如@David Lively建议我们采用可排序的路线......完全按照我的需要去做!