Javascript 拖放;拖放:光标在Chrome中
我的问题是,在Chrome中,光标不随可拖动项移动。它在IE中运行良好。 我有jquery和jQueryUI1.11.1,这就是我正在使用的脚本Javascript 拖放;拖放:光标在Chrome中,javascript,jquery,jquery-ui,google-chrome,Javascript,Jquery,Jquery Ui,Google Chrome,我的问题是,在Chrome中,光标不随可拖动项移动。它在IE中运行良好。 我有jquery和jQueryUI1.11.1,这就是我正在使用的脚本 function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.target.innerHTML += ' '; // Add space so that there is no kerning... ev.dataTransfer.setData
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));
}
也许有什么东西不见了。非常感谢您的帮助问题是拖动图像(“阴影”)被移动到
#word
的角落,对吗
看起来Chrome计算的位置是错误的,可能是因为
和
标签,我猜
您可以使用setDragImage
方法修复此问题,将DragImage设置为事件的target
,并根据单击位置设置偏移,这将强制Chrome正确渲染:
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);
}
它在这里工作
(在我的小提琴中,我将类型更改为“text/plain”,只是为了测试这是否是问题的原因,但事实并非如此)根据我的经验,光标在chrome中移动正确,请创建一个JSFIDLE或代码笔。感谢Luizgrs的快速回复。我不熟悉创建JSFIDLE,但这就是我所做的。希望能有帮助。谢谢你,路易斯格斯。我不熟悉创建JSFIDLE,但这就是我所做的。希望能有帮助。再次感谢。谢谢你,路易斯格斯。完成并工作。非常感谢你。非常感谢您的快速帮助。魔术