2

我想从元素列表中拖动(Buttons, TextBox)并将克隆拖放到“表单设计器”div中。如何获取原始元素的属性并在该表单设计器中创建新元素div

drop: function( event, ui ) 
{
    jQuery('<input/>', 
    { 
        type: 
        value: 
    }
    ).appendTo('#cartContent');                             
}
4

1 回答 1

3

在第一种情况下,这允许您将元素拖到表单设计器上并创建项目的副本,如以下 jsFiddle 演示所示

jQuery(function() {
    jQuery(".component").draggable({
        //  use a helper-clone that is append to 'body' so is not 'contained' by a pane
        helper: function() {
            return jQuery(this).clone().appendTo('body').css({
                'zIndex': 5
            });
        },
        cursor: 'move',
        containment: "document"
    });




    jQuery('.ui-layout-center').droppable({
        activeClass: 'ui-state-hover',
        accept: '.component',
        drop: function(event, ui) {
            if (!ui.draggable.hasClass("dropped"))
                jQuery(this).append(jQuery(ui.draggable).clone().addClass("dropped").draggable());
            }
        });
    });​

为了防止设计器 div 中的项目重叠,我使用了这个演示中显示的代码:

$('.drop').droppable({
    tolerance: 'fit'
});

$('.drag').draggable({
    revert: 'invalid',
    stop: function(){
        $(this).draggable('option','revert','invalid');
    }
});

$('.drag').droppable({
    greedy: true,
    tolerance: 'touch',
    drop: function(event,ui){
        ui.draggable.draggable('option','revert',true);
    }
});
​

于 2012-05-30T11:18:07.153 回答