jQuery:多个可拖动项和可丢弃项
jQuery: Multiple draggables and droppables?
我正在尝试使用jquery draggable和dropable。
我的页面上有多个可拖动项和多个可丢弃项。
drga和drop工作得很好,但问题是,当我将div拖放到1个dropable上时,它也会被克隆到我页面上的其他dropable中。。。此外,当我移动滴管内的可拖动部分时,它们会再次相乘。
为了解释这个问题,我创建了这个FIDDLE
这是我的全部代码:
(function ($) {
$.fn.liveDraggable = function (opts) {
this.live("mouseover", function() {
if (!$(this).data("init")) {
$(this).data("init", true).draggable(opts);
}
});
return this;
};
}(jQuery));
$('.drag').liveDraggable({
helper: 'clone',
cursor: 'move'
});
var x = null;
$(".droppable").droppable({
drop: function(e, ui) {
var parent = $(".droppable");
var x = ui.helper.clone();
var img = $(x)
var leftAdj = (ui.position.left - parent.offset().left);
var topAdj = (ui.position.top - parent.offset().top);
if (x.hasClass("outside")) {
x.css({
left: leftAdj,
top: topAdj
});
x.removeClass("outside");
}
x.draggable({
helper: 'original'
});
x.find('.ui-resizable-handle').remove();
x.resizable();
x.appendTo('.droppable');
ui.helper.remove();
}
});
将红色div拖到黑色div上,您应该会看到问题。
有人能就这个问题提出建议吗?
如有任何帮助,我们将不胜感激。
编辑:
接近但仍不完全到达:https://jsfiddle.net/qkhunz8k/2/
编辑:显然我沟通不太好。让我再试一次。您的所有滴管都具有类droppable
。正如你所说,他们当然会。这就是上课的目的。
但是,在您的代码中,当您说x.appendTo('.droppable')
时,这就是重复项的来源。它附加到每个具有droppable
类的元素上。
我并不是建议您更改或删除可丢弃类。我并不是建议您更改所有的jquery选择器。我只是建议,当您执行.appendTo
时,也许您应该只将其附加到作为目标的droppable
。不是所有的。这有道理吗?您可以通过执行x.appendTo(this)
来执行此操作。只要更改这一行,看看重复的问题是否会消失。
$(".droppable").droppable({
...
x.appendTo(this);
这个改变唯一能做的就是改变你的draggable被附加到的元素的数量。它不会引起任何其他的改变。但我认为它会解决你最初的问题。
顺便说一句,我可以建议你换一条线会得到更好的结果吗?如果使用ui.draggable
而不是ui.helper
,您可能会发现css定位会更容易管理,并且不需要对top
和left
属性进行太多操作。只是一个想法。
var x = ui.draggable.clone();
您的小提琴在这里的更新修改
- jQuery UI可排序-多连接列表拖动
- JQuery UI可拖动潜水与滚动棒到鼠标
- jQuery UI-当可丢弃时,必须删除拖动的元素
- jQuery UI可拖动:自定义捕捉方法
- 是否可以在jquery中使用拖动滑块在4个图像之间滑动
- Bootstrap和JQuery可拖动
- jQuery拖动到相对位置的可排序列表中时出现可拖动辅助对象位置问题
- JQuery UI可拖动:如果助手设置为克隆,为什么不't可拖动集的已应用类到克隆
- jQuery可拖动克隆-safari问题
- 允许具有相同 id 的对象可以使用 jQuery 拖动
- 使一组对象与 jQuery 一起拖动
- 修改(可拖动|jQuery UI)
- “居中拖动Jquery”对话框
- keep:将鼠标悬停在拖动jquery元素上
- 拖动jQuery中已删除元素的克隆
- 不带id的可拖动jQuery的保存位置
- 移除<从一个可拖动的时候被拖动- jquery
- 面板无法拖动- Jquery UI
- 禁用在“猫头鹰轮播”中的特定元素(项目)中拖动 - jquery
- 防止在拖动 jquery UI 滑块时出现鼠标输入/鼠标离开事件