我想从元素列表(Buttons
,TextBox
)中拖动并将克隆拖放到“表单设计器”div
中。如何获取原始元素的属性并在该表单设计器div
中创建新元素?
drop: function( event, ui )
{
jQuery('<input/>',
{
type:
value:
}
).appendTo('#cartContent');
}
答案 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);
}
});