删除拖放时可拖动的助手克隆

Posted

技术标签:

【中文标题】删除拖放时可拖动的助手克隆【英文标题】:Remove draggable's helper clone on drop 【发布时间】:2014-01-23 09:26:24 【问题描述】:

我有一个带有 revert: true 的可拖动元素,但是当它成功删除时,助手克隆仍保留在我放手的可放置元素上。我需要克隆在成功放置时消失,就像在不成功放置时一样。

$('.frank').draggable( 
  revert: true,
  revertDuration: 0,
  helper: 'clone'
)

$( ".offer-2" ).droppable(
  accept: '.frank',
  drop: function() 
    $(this).addClass('offer-2b');
    $('.frank, .tp-2').draggable('disable');
  
)

【问题讨论】:

【参考方案1】:

你可以在你的 drop 函数中删除助手

$( ".offer-2" ).droppable(
    accept: '.frank',
    drop: handleDropEvent
);

function handleDropEvent( event, ui ) 
    $(this).addClass('offer-2b');
    $('.frank, .tp-2').draggable('disable');
    $(ui.helper).remove();
;

【讨论】:

【参考方案2】:

在 drop 事件上隐藏助手:

$( ".offer-2" ).droppable(
  accept: '.frank',
  drop: function(event, ui) 
    $(this).addClass('offer-2b');
    ui.helper.hide();
  
)

或者如果你真的不需要丢弃的元素,那么ui.helper.remove()

jQuery Droppable drop event

【讨论】:

以上是关于删除拖放时可拖动的助手克隆的主要内容,如果未能解决你的问题,请参考以下文章

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

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

jquery UI 可拖动助手:克隆从原始中删除可拖动?

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

jQuery - 可拖动克隆上的拖放视觉反馈

jquery拖放和克隆,找到元素的放置位置