如何拖放克隆的HTML元素

时间:2012-05-30 11:02:55

标签: jquery jquery-ui

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

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

1 个答案:

答案 0 :(得分:3)

在第一种情况下,这允许您将元素拖到窗体设计器上并创建项目的副本,如this jsFiddle demo中所示:

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中的项目重叠,我使用了此代码shown in this demo

$('.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);
    }
});
​