2012-07-30 62 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