2012-07-30 99 views
1

背景的正确位置: 我有一个可拖动的,我可投放暨拖动内下降。在'拖放'时,可拖动的元素嵌套在可拖拽内部。在'出'(即拖动可拖动外部的可拖动)时,可拖动变为非嵌套 - 即嵌套到主体。如何设置嵌套拖动元素

问题: 可拖动的嵌套和取消嵌套会导致可拖动捕捉的位置到一个新的位置。这是因为可拖动对象的css包含了对预知父对象的相对位置,并且在嵌套到新父对象的过程中,这个相对css被假定为相对于新父对象。

实例和问题: 例在http://jsfiddle.net/sandeepy02/CNtRX/2/ 您可以通过

  1. 创建对象的“房间”和“表”复制问题。

  2. 移动 '房间'。

  3. 降 '表' 到 '房间'。

表格被重新定位远离鼠标光标。发生这种情况的原因是因为'table'的css包含表相对于主boundaryContainer的位置。当我将'桌子'放入'房间'中时,相对于'房间'相同的相对位置被施加,从而导致'桌子'的位置突然改变。

事实上,当我拖出'表'时,位置会再次捕捉到不同的psoition,因为'table'css现在包含相对于'room'的位置,并且将'table'附加到'boundaryContainer'会导致相对位置到'房间'被假定为'boundaryContainer'的相对位置。

任何帮助将不胜感激。

回答

1

您的问题在于附加到表格div的两个额外参数 - >left & top。我建议的解决方法是,在每个可拖动或可拖动事件之后都有一个选项可以调用一个函数。在这个函数中,你可以将这两个属性的值设置为0;

当我除去使用萤火虫那些,该位置是完全对齐。你可以尝试它并在这里发布结果?

+0

感谢您的答复。 – user1517108 2012-08-10 08:08:21

0

Afrin,谢谢你的回复。我已经放弃了同样的解决方案,并且已经停止检查上周的回复。但是你的回应看起来就像隧道尽头的光芒。

我从什么ü提出了修改和我的代码,使得左右将是不为零,但可拖动的左侧和投掷的左的总和。

看来,当我丢弃拖动可放开里面工作。然而,当我拖放drappable时,这同样不起作用。可拖动的位置仍然跳跃。

为同一代码在http://jsfiddle.net/sandeepy02/CNtRX/3/

我已经做了轻微的修改,使我们可以看到div的位置为好。

的代码改变位置是:

 ui.draggable.css({ 
      "left": positionDrag.left - $(this).offset().left, 
      "top": positionDrag.top - $(this).offset().top 
     }); 
+0

它是否必须使用ui.helper做些什么? – user1517108 2012-08-10 08:20:58