我的问题是,在Chrome中光标不会随着可拖动项目一起移动。它在IE中运行良好。 我有jquery和jquery-ui 1.11.1,这是我正在使用的脚本
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.target.innerHTML += ' '; // Add space so that there is no kerning...
ev.dataTransfer.setData("Text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("Text");
ev.target.parentNode.replaceChild(document.getElementById(data), ev.target);
document.getElementById(data).className = " ";
}
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
if(ev.target.getAttribute('data-drop') == data)
ev.target.appendChild(document.getElementById(data));
}
也许缺少某些东西。真的很感激帮助
答案 0 :(得分:0)
问题是拖动图像('阴影')被移动到#word
的角落,对吗?
看起来Chrome正在计算位置错误,可能是因为<span>
和<center>
标签,我猜......
你可以使用setDragImage
方法解决这个问题,将DragImage设置为事件的target
,并根据点击位置设置偏移量,这将迫使Chrome正确渲染:< / p>
function drag(ev) {
ev.target.innerHTML += ' '; // Add space so that there is no kerning...
ev.dataTransfer.setData("Text", ev.target.id);
ev.dataTransfer.setDragImage(ev.target, ev.layerX - ev.target.offsetLeft, ev.layerY - ev.target.offsetTop);
}
它在这里工作http://jsfiddle.net/wv19zzsd/5/
(在我的小提琴中,我将Type更改为'text / plain'仅测试是否是问题的原因,但事实并非如此)