Jquery拖放和克隆

Posted

技术标签:

【中文标题】Jquery拖放和克隆【英文标题】:Jquery drag /drop and clone 【发布时间】:2011-01-07 05:42:57 【问题描述】:

你好,我需要实现这个..

我有一组可丢弃的物品(基本上我正在丢弃一件衣服上的设计)并且我正在丢弃一个克隆..

如果我不喜欢丢弃的对象(设计) - 我想通过执行类似隐藏的操作来删除它。

但我做不到。

请帮帮我..


这里是代码

    var clone;
    $(document).ready(function()
        $(".items").draggable(helper: 'clone',cursor: 'hand');


     $(".droparea").droppable(
                    accept: ".items",
                    hoverClass: 'dropareahover',
                    tolerance: 'pointer',
                    drop: function(ev, ui)
                    

              var dropElemId = ui.draggable.attr("id");

              var dropElem = ui.draggable.html();

                      clone = $(dropElem).clone(); // clone it and hold onto the jquery object
                      clone.id="newId";
                      clone.css("position", "absolute");
          clone.css("top", ui.absolutePosition.top);
                      clone.css("left", ui.absolutePosition.left);
              clone.draggable( containment: 'parent' ,cursor: 'crosshair');

                      $(this).append(clone);
                      alert("done dragging ");

                      /lets assume I have a delete button when I click that clone should dissapear so that I can drop another design - but the following code has no effect 
                      //and the item is still visible , how to make it dissapear ?
                      $('#newId').css("visibility","hidden");



               
        );



    );

【问题讨论】:

【参考方案1】:

因为 .clone() 返回一个 jQuery 对象。 clone.id="newId" 在 jQuery 对象而不是 DOM 元素上设置属性。由于 DOM 元素没有 id 属性。 $('#newId').length 应该返回 null。在 firebug 控制台中测试

用途:

clone.attr('id', 'newId') 

在克隆对象的 DOM 元素上设置 ID。

【讨论】:

最好还是使用 clone[0].id = "newid";【参考方案2】:

您可以使用拖放可拖动对象功能:

drop: function (event, ui) 
                            $(ui.draggable).remove();
                        

之后

$(this).append(clone);

在你的脚本中;

【讨论】:

以上是关于Jquery拖放和克隆的主要内容,如果未能解决你的问题,请参考以下文章

Jquery拖放和克隆

JQuery-UI 在 Re-Drag 上拖放和重新拖动克隆

让 jQuery 可排序、可拖放和可拖动以协同工作

jQuery拖放:克隆的可拖动移动原始

带有标签的JQuery拖放不会克隆节点

jQuery - 可拖动克隆上的拖放视觉反馈