我正在使用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") }
根据文档,receive(实际上所有可排序的回调)都有两个参数。第二个参数应该包含:
> ui.helper – 当前的帮手元素(通常是克隆的项目)> ui.position – 当前位置帮手> ui.offset – 当前的绝对位置的帮手> ui.item – 当前拖动的元素> ui.placeholder – 占位符(如果你定义了一个)> ui.sender – 可排序的项目来自(仅存在,如果你从一个连接的列表移动到另一个)