Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery为可拖放元素构造正确的接受函数?_Javascript_Jquery_Html_Jquery Ui - Fatal编程技术网

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个额外的draggable
div
s。(我使用jQuery和jQuery UI)

  • A区
    B区
    可自由拖动,无直接投放目标 (如windows操作系统中的windows)
  • 只能在另一个绿色框上拖放绿色框。(待交换)
  • 黄色框只能拖放到另一个黄色框上。(待交换)
我做了所有与拖放、交换操作相关的事情:都很好

问题是,当
diva
结束
divb
时,我无法阻止将黄色框放到绿色框上

我尝试的:(但没有成功)

  • 我在Dragable的
    容器中添加了
    parent
  • 我为droppable的
    接受尝试了以下函数:

    $(elem).droppable({
        accept: function(draggable){
        if(draggable.parent()!=$(this).parent()){
            return false;
        }
        return true;
    });
    
我想在不分配和比较ID或类名的情况下解决这个问题。这可能吗

如果(draggable.parent()!=$(this.parent())
永远不会为真,因为即使它们包含相同的DOM元素,它们也是两个独立的jQuery对象,并且独立的对象永远不会彼此关联。如果比较父对象是正确的,那么可以比较DOM元素,因为只有一个(即使它包装在多个jQuery对象中):

if(draggable.parent()[0] != this.parentNode)