我有2个具有绝对定位的可自由拖动的div
元素。在这2个div中,我有3个额外的可拖动div
s。 (我使用jQuery和jQuery-UI)
Div A
和Div B
可自由拖动,没有直接投放目标
(如Windows操作系统中的Windows)。我做了与拖放,交换操作相关的所有事情:一切都很好。
问题是,当Div A
超过Div B
时,我无法阻止在绿框上掉黄框。
我尝试了什么:(但没有工作)
parent
添加到了可拖动的containment
我为droppable accept
尝试了以下功能:
$(elem).droppable({
accept: function(draggable){
if(draggable.parent()!=$(this).parent()){
return false;
}
return true;
});
我想在不分配和比较ID或CLASS名称的情况下解决这个问题。这可能吗?
答案 0 :(得分:0)
if(draggable.parent()!=$(this).parent())
永远不会成立,因为即使它们包含相同的DOM元素,它们也是两个独立的jQuery对象,而且单独的对象彼此之间永远不会==
。如果比较父项是非常正确的,你可以比较DOM元素,因为只有一个元素(即使它包含在多个jQuery对象中):
if(draggable.parent()[0] != this.parentNode)