2010-11-22 37 views
2

だから私が取り組んでイムこのプロジェクトを持っている、そして今、私はドラッグして、私のアイテムをドロップするとのjQuery UIのドラッグ&ドロップ位置が最初のドロップの上にジャンプし

私の問題は、ある立ち往生:(イム、私はする必要がありこれは私がdiv要素にドラッグした直後にジャンプを紹介しますが/取得、コンテナではなく、体全体に対する位置を設定するので、私は、私は(位置を使用する必要があります理解して何から)。私はこの

var pos=$(ui.helper).position(); 
objName = "#leaf"+counter++ 
$(objName).css({"left":pos.left,"top":pos.top}); 

を使用してください

私はこれを使用して、左var pos = $(ui.helper).offset();私のコンテナ(#treeContainer)をCSSを "position:relative;"を含まないように設定するこれはページ全体に相対的な絶対値を与えました。

ご回答いただきありがとうございます。

答えて

0

まず、#dragオブジェクトの位置付けCSSを削除します。これらの値は、目的地オブジェクトに持ち越され、そこであなたの目標と競合します。また、JSコードでこれらの値を0にリセットすることもできます。

#drag1 { 
    width:74px; 
    height:111px; 
    float:right; 
    background-color:#0F3; 
} 

#drag2 { 
    width:74px; 
    height:111px; 
    float:right; 
    background-color:#3C9; 
} 

次に、JSで、あなたは減算を使用して、親コンテナからの値を使用してtopleft値をオフセットする必要があります。

 var pos = $(ui.helper).offset(); 
     var treePos = $('#treeContainer').offset(); 
     objName = "#leaf" + counter++; 
     $(objName).css({"left": pos.left - treePos.left, "top": pos.top - treePos.top}); 

これらの変更後、正常に動作します。例については、http://jsbin.com/exoqu3/6を参照してください。

+0

私のプロジェクトにコードを追加しましたが、私はまだ問題が発生していますが、ジャンプはかなり小さいです。すべての画像、任意のアイデアを見ることができますか?再度、返信ありがとう – Mac

+1

葉が含まれている要素に相対的な位置を取得しているようですが、これは間違っています:.position()を使用する代わりに.offset ()を 'pos'と' treePos'の両方に使用しています。http://api.jquery.com/offset/ – ChessWhiz

+0

素晴らしい、それは動作している:Dありがとう – Mac

-1

変更

#drag1 { 
    width:74px; 
    height:111px; 
    float:right; 
    background-color:#0F3; 
} 

それはあなたの利益に関係しています。それらと一緒に遊んで、私はあなたがそれを得るだろうと確信しています。

+0

返信ありがとうございますが、問題を完全には修正していません。私はそれが位置を持っている場合、私はコンテナに相対座標を得ることができる理由を理解していない:相対;しかし、私は位置を保持する:相対;それは要素をジャンプさせます:( – Mac

関連する問題