无法在droppable上删除jquery ui helper

为什么这段代码不允许我将助手放到可放置区域?

$(".product").draggable({ revert: 'invalid', cursorAt: { top: -12, left: -20 }, helper: function(event) { return $('
'); } }); $(".droppable").droppable({ accept: '.product_helper', drop: function(event, ui) { $(this).append( ui.helper ); } });

甚至可以将帮助器放在一个可放置的支架上吗?

完全可以删除帮助程序的克隆,但是不能删除帮助程序本身(如示例中所示)。

这是一个jsFiddle,展示了克隆一个克隆帮手: http : //jsfiddle.net/jKabn/1/

这是相关的代码:

  $(".product").draggable({ revert: 'invalid', cursorAt: { top: -12, left: -20 }, helper: function(event) { return $('
Helper
'); } }); $(".droppable").droppable({ drop: function(event, ui) { //clone and remove positioning from the helper element var newDiv = $(ui.helper).clone(false) .removeClass('ui-draggable-dragging') .css({position:'relative', left:0, top:0}); $(this).append(newDiv); } });

在jquery中执行drop之后删除帮助程序。 为了保持它,你需要删除可拖动的特定css和定位以及克隆元素。 在jsFiddle中还有一个关于删除“draggable”元素的演示(并不是因为它与你的问题特别相关,我只是为自己添加它。)

希望有所帮助

我遇到的一个问题是,如果公差选项处于默认值’intersect’,则可拖动元素太宽而无法放到droppable元素上。

‘intersect’表示当50%的draggable超过droppable时可以丢弃draggable。 如果它的宽度超过两倍,这是不可能的。

我的拖动器具有可变值,因此它们的宽度变化,它们是否也可以变化。 我使用’指针’代替鼠标所在的位置。