拖动; Drop:Chrome中的光标

时间:2014-09-29 11:14:43

标签: javascript jquery jquery-ui google-chrome

我的问题是,在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));

    }

也许缺少某些东西。真的很感激帮助

1 个答案:

答案 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'仅测试是否是问题的原因,但事实并非如此)