【问题标题】:jQuery Drag & Drop without Destroying dragged itemjQuery拖放而不破坏拖动的项目
【发布时间】:2014-10-09 03:37:37
【问题描述】:

我在以下方面遇到了一些困难,需要一些指导来了解如何(简单地)实现这一点。

使用 jQuery,如何将一个对象拖入容器中,将其注册为事件,并将原始拖动的项目保留在原处。

这很难解释,所以我能给出的最好的就是一个有工作示例的网站:enter link description here

我熟悉使用可拖动和可放置以及注册原始容器,但是在放置时,拖动的对象会从其原点移动。基本上,我希望实现这一点>>

  1. 拥有一个无序列表的图像,这些图像都注册了可拖动。
  2. 拥有一个注册为可放置的容器。
  3. 在将一张图片拖放到容器中时,检测碰撞,然后拖放+渲染一些 html(出于演示目的,您可以展示如何对任何图片执行此操作,拖放的结果可能是页面。
  4. 在此过程中,不得将图像从无序列表中移出。
  5. 为目标html注册事件(为了演示,我们可以为新插入的html捕获onclick事件)。

拖放位是最简单的部分。我遇到的困难分为三个部分:

  1. 放置后将原始项目保留在其原始位置。
  2. 不要删除原始项目的克隆 - 改用自定义 html。
  3. 设置已删除的代码以处理该代码块独有的新事件。

提前致谢。

【问题讨论】:

    标签: jquery html drag-and-drop


    【解决方案1】:

    你可以做的事情

    1 & 2

    $( ".selector" ).draggable( "option", "helper", function(){
    
    //Custom HTML generator goes here;
    
    } );
    

    这将使用为拖动而生成的自定义 HTML,并且相同的 HTML 将被丢弃。所以原件即使在掉落后也能原封不动地留在原处。

     $( ".droppable" ).droppable({
    
       drop: function( event, ui ) {
    
           //Drop code
       }
    });
    

    我猜这解决了 3。

    更新的代码:找到完整的小提琴here

      $('.dragger').draggable({
            revert: "invalid",
            helper: function () {
                //Code here
                return $("<div class='dragger'></div>").append("Hi");
            }
        });
    
    
        $(".dropper").droppable({
            drop: function (event, ui) {
    
                $(this)
                    .addClass("ui-state-highlight")
                    .find("p")
                    .html("Dropped!");
    
                var element = $('.ui-draggable-dragging');
                var currentDrop=$(this);
                return element.clone().appendTo(currentDrop);
            }
        });
    

    【讨论】:

    • 您能否展示一个关于如何实现自定义 html 段的小示例?又名...拖动图像并放置自定义 html 块...这段代码看起来不错,但我不知道如何使用它
    • 答案已更新。还添加了小提琴。 @SanuelJackson
    • 我想我可以用这个。目标控件将是一个拖放和排序容器,添加的每个元素都有自己独特的事件(单击等).. 目前您的代码只会附加到元素的末尾.. 不确定我是否可以重新定位/删除元素,但应该能够。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    相关资源
    最近更新 更多