【发布时间】:2018-02-16 09:30:15
【问题描述】:
我正在尝试使拖放功能正常工作,并且在笔记本电脑的台式机上很好。但是,在移动设备上,当我拖放时,拖动的项目会在其他所有内容下方消失(我认为),我真的无法弄清楚原因。
我已将显示问题的页面上传到http://mailandthings.co.uk/dam1/
我已经尝试在可拖动代码中设置 zindex 并没有区别
var $dragContainer = $("div.drag-container");
var $dragItem = $("div.drag-item");
$dragItem.draggable({
cursor: "move",
snap: "div.drag-container",
snapMode: "inner",
snapTolerance: 10,
helper: "clone",
handle: "i",
zIndex: 10000
});
$dragContainer.droppable({
drop: function (event, ui) {
var $elem = $(event.toElement);
var obj = {
posX: event.pageX - $dragContainer.offset().left - event.offsetX,
posY: event.pageY - $dragContainer.offset().top - event.offsetY,
data: $elem.data(),
html: $elem.html()
};
addElement(obj);
masterPos.push(obj);
}
});
function addElement(obj) {
var $child = $("<div>");
$child.html("<i>" + obj.html + "</i>").addClass("drop-item drop-item-mobile");
$child.attr("data-type", obj.data.type);
$child.css({
top: obj.posY,
left: obj.posX
});
$dragContainer.append($child);
}
如果它使用 jQuery UI Touch Punch 0.2.3
有人有什么想法吗?
【问题讨论】:
-
我在一个类似的问题中发现了这种补丁。显然它使 jQuery UI 能够在移动设备上工作,但是 5 年过去了,我不知道它现在是否还能工作 touchpunch.furf.com
-
谢谢,我会试试的。您知道是否可以在没有拖动的情况下进行拖放?我的意思是点击一个源对象,然后点击可放置区域中的一个目标点,它会出现在那里(如果有意义的话!)?我问的原因是屏幕稍微滚动会使在移动设备上使用拖放操作非常烦人。除非有办法(仅在移动设备上)防止屏幕滚动?
-
好吧,我确信可以编写一个函数来做到这一点,因为我们都在互联网上的某个地方看到过,我认为 jQuery UI 不是必需的,只需存储 HTML第一项和第二项并交换它们。
-
我已经尝试过你建议的 touchpunch 并且我已经意识到为什么放置项目消失了(在移动设备上,div 的左边缘返回的值与桌面/非的值不同- 移动版),但另一个更烦人的问题是,使用该触摸打孔,它只允许我连续两次拖动,然后似乎不再允许拖动。你以前见过吗?
-
不,我只在桌面上使用了 jQuery UI,所以我不需要使用那个补丁或任何与手机相关的东西,对不起
标签: jquery-ui drag-and-drop touch