【问题标题】:jQuery clone not working with draggablejQuery克隆不适用于可拖动
【发布时间】:2012-11-07 07:13:53
【问题描述】:

我正在使用 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 如下所示:

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

为什么哦,为什么?

【问题讨论】:

    标签: javascript jquery jquery-ui clone


    【解决方案1】:

    元素被克隆时处于相对位置且位于元素外部的状态。您必须删除元素样式:

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

    【讨论】:

    • 非常感谢!工作。我必须等待 4 分钟才能接受您的回答。
    猜你喜欢
    • 2018-07-25
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 2010-11-16
    • 2011-08-28
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多