0

这就是我遇到的问题:我创建了几个可拖动元素,但是当我将一个放在可放置元素上时,它不会留在那里。以下是更多细节。

我的 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: function() {
         alert('ok');
             }
         });
    }// End function init()
</script>

但是当我在这个可放置元素上拖动我的一个可拖动元素时,我什至会收到警报,但可拖动元素不会留在可放置元素上。

谁能帮我确定为什么我的可拖动元素没有停留在可放置元素上?

提前感谢您的帮助!

4

2 回答 2

1

你用过revert :true.. 这意味着

Revert 表示如果设置为 true,则元素将在拖动停止时返回到其起始位置。可能的字符串值:“有效”、“无效”。如果设置为无效,则仅当可拖动对象未放置在可放置对象上时才会发生还原。对于有效,它是相反的方式。

invalid如果您的draggable元素没有放在正确的元素上,您可能需要

于 2012-09-25T15:31:04.587 回答
0

非常感谢您为我指明了正确的方向。我已经通过以下方式解决了这个特殊问题:

我已经编辑了我的可放置代码,如下所示:

$( "#filtered" ).droppable(
   drop: handleDrop
});

function handleDrop( event, ui ) {
    ui.draggable.draggable( 'option', 'revert', false );
} // End function handleDrop

这解决了可拖动对象不停留在可放置对象上的问题(之前已描述)。

于 2012-09-25T16:39:36.510 回答