我正在使用jQuery的draggable
和droppable
来将内容元素放到页面元素上:
<h2>Page</h2>
<div id='page-content'>
</div>
<div id='content-elements'>
<div id='text-element' class='content-element'>Text</div>
<div id='date-element' class='content-element'>Date</div>
</div>
我的JS for draggable看起来像这样:
$elements.draggable({
revert: true
});
我之所以有revert
,我希望内容元素返回元素列表,并将“重复”添加到页面中。
我尝试使用此js作为droppable(使用coffeescript创建):
$('#page-content').droppable({
drop: function(event, ui) {
var $element, $me;
$me = $(this);
$element = $(ui.draggable);
console.log($element.clone(false));
return $element.clone().appendTo($me);
}
});
这样做是获取被拖动的ui元素,尝试克隆它然后将其附加到页面。
然而,这不起作用!即使我可以从ui.draggable获得div等。
我创建了一个jsfiddle来说明问题: http://jsfiddle.net/sw4Gc/2/
为什么哦为什么?
答案 0 :(得分:5)
元素克隆在相对位置且位于元素之外的状态。你必须删除元素样式:
var $newElement = $element.clone();
$newElement.attr('style', '');
$newElement.appendTo($me);