【问题标题】:Several divs, how to find image and remove the parent divs几个div,如何查找图像并删除父div
【发布时间】:2015-07-22 09:34:15
【问题描述】:

我在 <div class="items" 上使用 draggable 来持有这些元素

<div class="item">
    <div class="thumb">
        <img id="image" src="source.png" />
    </div>
    <div class="description">
        <p>Some description here</p>
    </div>
</div>

现在在 droppable 上,我只想保留该 div 的图像。我已经尝试使用以下代码,但似乎不起作用...

$("#dropbar").droppable({
    accept: ".deal-itinerary-item .row",
    hoverClass: correct_placeholder,
    activeClass: active_placeholder,
    revert: false,
    tolerance: "pointer",

    drop: function (event, ui) {
        var dragging = ui.draggable.clone().find("img").remove();
        $(this).append(dragging).addClass("dropped");
    }
});

认为这会找到img 并从可拖动对象中删除任何其他内容。

我做错了什么,我该如何解决?

谢谢!

【问题讨论】:

  • 同样的结果,所有的父 div 也不断被克隆。
  • 你能创建一个fiddle吗?

标签: javascript jquery html draggable jquery-ui-droppable


【解决方案1】:

您正在删除示例中的 img,因为它是您调用 remove() 时 jQuery 对象选择的内容。

 var image = ui.draggable.find("img").clone();
 $(this).append(image).addClass("dropped");

我不确定您要删除的内容是原始的可拖动内容,还是您只是克隆了太多内容。但是如果你想删除原来的draggable:

 var image = ui.draggable.find("img").clone();
 $(this).append(image).addClass("dropped");
 ui.draggable.remove();

可能有效。

【讨论】:

    【解决方案2】:

    您可以直接克隆 img 来代替。

    drop: function (event, ui) {
        var dragging = ui.draggable.find("img").clone();
        $(this).append(dragging).addClass("dropped");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多