2012-03-01 18 views
0

次のコードの問題点は何ですか?jQueryを使用したドラッグアンドドロップ

はこちらをご覧ください:http://jsfiddle.net/xKcAu/

JS:

$(document).ready(function() { 

    $('#diag1').draggable(); 
    $('#diag1').css('background-color', '#f4f'); 
    $('#diag1').width('100px'); 
    $('#diag1').height('50px'); 

    $('#cnt1').css('background-color', '#4ff'); 
    $('#cnt1').width('300px'); 
    $('#cnt1').height('300px'); 

    $('#cnt1').droppable({ 
     drop: function(event, ui) {     
      $(this).append(ui.draggable); 
     } 
    }); 

}); 

HTML:

<div id="cnt1">ddd</div> 
<div id="diag1">Dialog 1</div> 

を、私はそれが離れて隠して大きな1に小さいのdivを削除した場合。どうして?

+0

「z-index」のように見えます。 – Bot

+0

この行:$(this).append(ui.draggable); --- jqueryの連鎖を見て、jquery関数のセレクタを常に定義する必要はありません。 $( '。selector')を実行することができますcss()。parent()。find()。whatever() – ggzone

+1

http://jsfiddle.net/xKcAu/4/ –

答えて

1

divを削除すると大きなdivの子になり、その位置に基づいて画面外になります。あなたが探しているものこれで、jsFiddle

1
#​diag1{ 
    position:absolute; 
} 

または

$('#diag1').css('position', 'absolute'); 

を追加し、私は100%を確認していない?あなたは大きなdivの位置を変更するときに何が起こるかを参照してください。

http://jsfiddle.net

1

それは消えることはありません。ドロップした場所に追加されますが、古い位置の値は保持され、オフスクリーンで終了します。 diag1position: absoluteを使用してください。そのため、droppableはposition: relativeを使用しません。位置座標は、コンテナではなく、ドキュメントの左上に対して常に測定されます。

0

あなたがしたいすべてがAPPENDと位置決めが問題を引き起こしていると述べた後、ちょうど次

$(this).append(ui.draggable); 

を削除し、ビューにドラッグ可能に保つある場合。

関連する問題