当前位置:  开发笔记 > 前端 > 正文

如何访问被放入可排序的draggable元素的id

如何解决《如何访问被放入可排序的draggable元素的id》经验,为你挑选了2个好方法。

我正在使用JQuery库来实现拖放.

当它被放入可排序列表时,如何获取被拖动的元素?

我想得到被拖动的div的id.拖动以下元素:

我有他们的例子中的标准拖动功能

$(".control").draggable({
  connectToSortable: '#sortable',
  helper: 'clone'
});

拖动部分中的函数停止,下一个代码返回正确的值

stop: function(event, ui) {
  alert(ui.helper.attr('id'));
}

这是可排序的元素:

  • test

和他的功能:

$("#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")
}

抛出undefined.


更新:

对不起,我的错:)我母亲常说 - "编码前读取API".ui.item.attr('id')工作良好.



1> Steerpike..:

尝试

receive: function(event, ui) { 
  $(ui.item).attr("id")
}

根据文档,receive(实际上所有可排序的回调)都有两个参数.第二个参数应包含:

ui.helper - 当前的帮助元素(通常是项目的克隆)

ui.position - 助手的当前位置

ui.offset - 帮助程序的当前绝对位置

ui.item - 当前拖动的元素

ui.placeholder - 占位符(如果您定义了一个)

ui.sender - 项目来源的可排序项(仅当您从一个连接列表移动到另一个连接列表时才存在)


顺便说一下,谢谢你的回答.我找不到任何项目属性的文档或如何访问它们.

2> Catalin DICU..:

看起来contextui.item在beforeStop事件和receive事件之间发生了变化.

在我的情况下,我试图将项目的ID设置为生成的值和

receive: function (event, ui) { ui.item.attr("id", "control" + currentControlId++);}

不适合我

所以你可以解决这个问题:

beforeStop: function (event, ui) { itemContext = ui.item.context;},
receive: function (event, ui) { $(itemContext).attr("id", "control" + currentControlId++);}

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有