Javascript 如何使用jQuery为可拖放元素构造正确的接受函数?
我有两个可自由拖动的Javascript 如何使用jQuery为可拖放元素构造正确的接受函数?,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,我有两个可自由拖动的div元素,具有绝对定位。在这2个div中,我有3个额外的draggabledivs。(我使用jQuery和jQuery UI) A区和B区可自由拖动,无直接投放目标 (如windows操作系统中的windows) 只能在另一个绿色框上拖放绿色框。(待交换) 黄色框只能拖放到另一个黄色框上。(待交换) 我做了所有与拖放、交换操作相关的事情:都很好 问题是,当diva结束divb时,我无法阻止将黄色框放到绿色框上 我尝试的:(但没有成功) 我在Dragable的容器中添加
div
元素,具有绝对定位。在这2个div中,我有3个额外的draggablediv
s。(我使用jQuery和jQuery UI)
和A区
可自由拖动,无直接投放目标 (如windows操作系统中的windows)B区
- 只能在另一个绿色框上拖放绿色框。(待交换)
- 黄色框只能拖放到另一个黄色框上。(待交换)
diva
结束divb
时,我无法阻止将黄色框放到绿色框上
我尝试的:(但没有成功)
- 我在Dragable的
容器中添加了
parent
- 我为droppable的
接受尝试了以下函数:
$(elem).droppable({ accept: function(draggable){ if(draggable.parent()!=$(this).parent()){ return false; } return true; });
如果(draggable.parent()!=$(this.parent())
永远不会为真,因为即使它们包含相同的DOM元素,它们也是两个独立的jQuery对象,并且独立的对象永远不会彼此关联。如果比较父对象是正确的,那么可以比较DOM元素,因为只有一个(即使它包装在多个jQuery对象中):
if(draggable.parent()[0] != this.parentNode)