微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 – 可排序的项目来自(仅存在,如果你从一个连接的列表移动到另一个)

原文地址:https://www.jb51.cc/jquery/182112.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐