jquery – 如何访问被拖放到可排序的可拖动元素的id

前端之家收集整理的这篇文章主要介绍了jquery – 如何访问被拖放到可排序的可拖动元素的id前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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 – 可排序的项目来自(仅存在,如果你从一个连接的列表移动到另一个)

猜你在找的jQuery相关文章