我正在使用 JQuery 库来实现拖放。
当元素被拖放到可排序列表中时,如何获取正在拖动的元素?
我想获取被拖动的div的id。拖动以下元素:
<div class="control" id="control[1]" >
<img src="img/controls/textfield.png" />
</div>
我有他们示例中的标准拖动功能
$(".control").draggable({
connectToSortable: '#sortable',
helper: 'clone'
});
函数在拖动部分停止,下一个代码返回正确的值
stop: function(event, ui) {
alert(ui.helper.attr('id'));
}
这是可排序的元素:
<ul id="sortable"><li>test</li></ul>
和他的功能:
$("#sortable").sortable({
revert: true,
accept: '.control',
receive: function(event, ui) {
// here i need to get draggable element id
}
});
我尝试了各种 ui.id 等,但似乎不起作用。
receive: function(event, ui) {
$(ui.draggable).attr("id")
}
抛出未定义
。
更新:
抱歉,是我的错:) 正如我母亲常说的那样 - “在编码之前阅读 API”。 ui.item.attr('id')
工作正常。
最佳答案
尝试
receive: function(event, ui) {
$(ui.item).attr("id")
}
根据文档,接收(实际上是可排序的所有回调)获得两个参数。第二个参数应包含:
- ui.helper - 当前助手 元素(通常是 项目)
- ui.position - 当前位置 helper
- ui.offset - 当前绝对位置 帮助者的
- ui.item - 当前拖动的元素
- ui.placeholder - 占位符(如果 您定义了一个)
- ui.sender - 可排序的位置 项目来自(仅当您存在时才存在) 从一个连接列表移动到 另一个)
关于jquery - 如何访问放入可排序的可拖动元素的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/661927/