我已经使用 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')。
你能帮助实现这两种行为吗?