我正在玩一些拖放用户界面,但我对DROP有点困惑。
您可以see the Fiddle here 。
近期目标:
我只需要了解如何将 .draggable
跨度放入 .droppable
div 中。
假设我使用 append()
的路径正确,我如何访问克隆的内容?
最终目标:
最终,我需要添加一种从放置区 div 中删除项目的方法,并将 .textfield
input/div 限制为仅接受单个放置(.textarea
) > input/div 可以接受无限数量的“有效负载”)。
代码:
/* html */
<table>
<thead>
<tr role="row">
<th class="sorting_asc" role="columnheader" tabindex="0" aria-controls="DataTables_Table_0" rowspan="1" colspan="1" style="width: 494px;" aria-sort="ascending" aria-label="Company: activate to sort column descending">Company</th>
<th class="sorting_disabled" role="columnheader" rowspan="1" colspan="1" style="width: 66px;" aria-label="Contact">Contact</th>
<th class="sorting_disabled" role="columnheader" rowspan="1" colspan="1" style="width: 79px;" aria-label="&nbsp;"> </th>
</tr>
</thead>
<tbody role="alert" aria-live="polite" aria-relevant="all">
<tr class="odd">
<td class="sorting_1 has_draggable_children">
<span draggable="true" class="ui-draggable" data-companyid="0101" data-companyname="**BD">**BD</span>
</td>
<td><a href="#4621">Contacts</a></td>
<td><a href="#4621">Edit</a>
<a href="#4621">Delete</a>
</td>
</tr>
<tr class="even">
<td class="sorting_1 has_draggable_children">
<span draggable="true" data-companyid="0202" data-companyname="0024" class="ui-draggable">0024</span>
</td>
<td><a href="#4438">Contacts</a></td>
<td><a href="#4438">Edit</a>
<a href="#4438">Delete</a>
</td>
</tr>
<tr class="odd">
<td class="sorting_1 has_draggable_children">
<span draggable="true" class="ui-draggable" data-companyid="0303" data-companyname="Acme, Inc.">Acme Anvil Corp</span>
</td>
<td><a href="#4621">Contacts</a></td>
<td><a href="#4621">Edit</a>
<a href="#4621">Delete</a>
</td>
</tr>
</tbody>
</table>
<section class="offset7" id="dragged-drop-zone" >
<div class="look-like-input textfield droppable" contenteditable></div>
<br />
<div class="look-like-input textarea droppable" contenteditable></div>
</section>
.
/* js */
// DRAG
$('span[draggable]').draggable({
revert: true,
helper: "clone"
});
// DROP
$('.droppable').droppable({
tolerance: 'pointer',
drop: function(event, ui) {
//console.log(this);
$(this).append($(ui.helper));
}
});
欢迎任何和所有的帮助和建议
最佳答案
好吧...已经深入到了底部。
克隆
似乎并没有按照人们期望的方式运行。
您最终必须使用自定义函数将自己的克隆打包到一个对象中,然后在 drop
中将其从对象中拉出来。
您可以see the working example here 在 jsFiddle 上。
这是最终的工作结果:
// Drag
$('span[draggable]').draggable({
revert: true,
helper: function() {
var container = $('<div/>');
var dragged = $(this);
container.append(dragged.clone());
return container;
}
});
// Drop
$('.droppable').droppable({
tolerance: 'pointer',
drop: function(event, ui) {
$(this).append($(ui.helper.children()));
}
});
关于javascript - jQuery UI 拖放 : clone not dropping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14326742/