使用克隆时可拖动/可放置从原始元素获取数据/属性

Posted

技术标签:

【中文标题】使用克隆时可拖动/可放置从原始元素获取数据/属性【英文标题】:Draggable/Droppable get data/attr from original element when using clone 【发布时间】:2018-08-22 04:02:07 【问题描述】:

我正在使用 jQueryUI 可拖放/可拖放将行从一个表拖到另一个表。我正在使用helper: 'clone',并且很难从被拖动的原始项目中获取任何数据/属性。这是一个更好地说明的jsfiddle:

https://jsfiddle.net/e2ter0a4/8/

我试图从表格单元格中获取data-id 属性,当它被拖放到可放置区域时,我无法这样做......

注意:我正在尝试通过 jQueryUI 执行此操作,而不必在拖动开始或其他一些自定义解决方案之前跟踪最后点击的单元格(我已经实现了类似的解决方法,只是想知道如果有更简单/更清洁的解决方案)。

【问题讨论】:

【参考方案1】:

你可以使用ui参数来获取它。 ui.draggable 获取您正在拖动的元素。来自文档:

可拖动 类型:jQuery 代表可拖动元素的 jQuery 对象。

试试这个:

$("#droppable").droppable(
    drop: function(event,ui)
    //get data-id from original td
    console.log(ui.draggable[0].getAttribute("data-id"));
  
);

JQuery UI Droppable documentation

Here is a fiddle

【讨论】:

以上是关于使用克隆时可拖动/可放置从原始元素获取数据/属性的主要内容,如果未能解决你的问题,请参考以下文章

如何将可拖动的元素放入可排序的元素中,放置的项目不是原始元素而是自定义助手

使用“克隆”助手执行可拖动事件后,如何删除原始元素?

jQuery拖放:克隆的可拖动移动原始

jQuery UI:从原始 div 拖动和克隆,但保留克隆

如何使用 jquery ui 使拖动和克隆的元素再次可拖动?

克隆一个 Jquery 可拖动对象也会拖动它的原始对象