JQuery UI を使用してドラッグ アンド ドロップ機能を実装しました。現在のコードを以下に示します。
私の JavaScript 関数は、PHP から JSON 配列を受け取り、ループを使用してドラッグ可能な要素を作成します。
<script type="text/javascript">
function init() {
var items = <?php echo $result_j;?>; //items is an one dimensional array
for ( var i=0; i<<?php echo $total_rows_j;?>; i++ ) {
$('<div>' + items[i] + '</div>').data( 'item_name', items[i] ).attr( 'class', 'snk_button' ).appendTo( '#drag' );
}
「items」配列を使用して、いくつかの div 要素 (上記のコード) を作成し、それをドラッグ可能な要素 (以下のコード) に変換します。
$(".snk_button").draggable( {
containment: '#drag_section',//Div #drag_section contains the Div #drag
stack: '#drag div',
cursor: 'move',
revert: true
} )
以下は私のドロップ可能なコードです:
$( "#dropp" ).droppable(
drop: handleDrop
});
function handleDrop( event, ui ) {
ui.draggable.draggable( 'option', 'revert', false );
} // End function handleDrop
これまでのところ、ドラッグ可能なアイテムがドロップ可能な div にアタッチされているため、すべて問題ありません。
ここで、この動作を少し調整したいと思います。
- ドラッグ可能なアイテムをドロップ可能な div (この例では「#dropp」と呼ばれます) に「自動的に」配置し、左上から開始します (左にフローティングします)。現在、「#dropp」div に「float:left」プロパティが設定されていても、これは発生していません。では、「#dropp」にドロップしたときにドラッグ可能なアイテムを配置するにはどうすればよいですか?
- ドロップ可能な div ('#dropp') からドラッグ可能なアイテムを取り出すと、最初にドラッグ可能なアイテムが含まれていた div (この例では '#drag') に戻ります。
これら 2 つの動作の実装を手伝っていただけますか?