首页 文章

Droppable无法使用克隆元素

提问于
浏览
-1

我有一个拖放系统,它一切正常 . 我有多个可以放置的div和多个可拖动的div . 然后我实现了一个克隆系统到droppable区域,所以我的droppable divs都可以克隆,这也很好 .

当我尝试将元素拖动到克隆的可拖动区域时的问题 . 可拖动的div不会将克隆的可放置区域检测为可放置区域,我只能将元素拖动到原始的放置区域 .

我是否需要更新某些内容以让可拖动的div知道有新的元素可以删除?

  • -编辑 - -

对于遇到相同问题的每个人,您需要在克隆之前销毁droppable . 所以在你的克隆函数中,只需把它

$(".drop").droppable( "destroy" );

然后克隆,然后再次调用droppable函数 .

2 回答

  • 0

    你在设置中使用jQuery UI吗?一旦移动,您应该尝试更改可拖动div的类名 . 尝试使用:

    $( "#draggable" ).addClass( "newClassName" );
    

    完成后,设置您的droppable接受该项目 . 听起来像jQuery UI认为你的项目已被删除 .

    $( "#droppable" ).droppable({
          accept: ".newClassName",
    
  • 0

    要实现您所需的功能,可以通过调用drop事件的更新功能来重新初始化新创建的droppable . 我使用你提供的例子来到这里 . 试试看 .

    $(document).ready(function () {
                 $(".duplicatedrop").click(
                function () {
                $(".drop").clone(true, true).appendTo(".drop");
                }
            );
    
        $(function() {
            $( ".drag" ).draggable({
                revert: true,
                cursor: 'move'
            });
        });
    
    
        updateDroppables();
    
        function updateDroppables(){
            $( ".drop" ).droppable({
                accept: ".drag",
                drop: function(event, ui) {
                    $(this).find( "p" ).html( "Dropped!" );
                    var clone = $(this).clone();
                    clone.appendTo('body');
                    updateDroppables();
                }
            });
        };
    });
    

相关问题