jQuery克隆无法使用draggable

时间:2012-11-19 11:10:28

标签: javascript jquery jquery-ui clone

我正在使用jQuery的draggabledroppable来将内容元素放到页面元素上:

<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/

为什么哦为什么?

1 个答案:

答案 0 :(得分:5)

元素克隆在相对位置且位于元素之外的状态。你必须删除元素样式:

var $newElement = $element.clone();
$newElement.attr('style', '');
$newElement.appendTo($me);