【发布时间】:2012-06-15 17:03:03
【问题描述】:
我想将类名应用到被拖动的“ghost”元素,而不是被克隆的原始元素。这是我为dragstart 事件设置的函数:
function dragStart(event) {
event.originalEvent.dataTransfer.effectAllowed = 'move';
event.originalEvent.dataTransfer.setData("text/plain", event.target.getAttribute('id'));
console.log(event);
console.log('Dragging...');
$(event.currentTarget).addClass('dragging');
return true;
}
$(event.currentTarget).addClass('dragging'); 行将 .dragging 类添加到原始元素,而不是克隆的拖动元素。
如何正确定位两者?
编辑
希望尽可能使用原生 HTML5 来处理这个问题。最好不要使用 jQuery 插件。
【问题讨论】:
-
虽然我以前实际上没有做过类似的事情,但对我来说,您所指的“幽灵”元素听起来像是可以用
event.dataTransfer.setDragImage(image, xOffset, yOffset);覆盖的图像/画布。这是基于来自MDN 的信息。 -
绝对正确,但我希望能够设置克隆或“幽灵”元素的样式,而不是完全替换它......听起来这可能是不可能的。
-
您是否尝试过复制目标对象(在 JavaScript 中),将您的类添加到副本中,然后将其传递给
setDragImage方法?虽然它声明第一个参数是图像,但我认为它的真正含义是“生成图像使用什么 DOM 元素”。 -
您已经在使用 jQuery 并且不想使用插件。这是否意味着你不能使用更多的 jQuery?你真的不应该在你的例子中使用 jQuery。
标签: html css drag-and-drop