2014-09-29 77 views
0

我的問題是,在Chrome中,光標不隨可拖動項目移動。它在IE中正常工作。 我有jQuery和jQuery的UI 1.11.1,這我使用拖放:Chrome中的光標

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

以我的經驗光標在chrome中正確移動,請創建一個jsfiddle或codepen關於它。 – Luizgrs 2014-09-29 11:37:31

+0

感謝Luizgrs的快速回復。我不熟悉創建jsfiddle,但這是我所做的。希望能幫助到你。 http://jsfiddle.net/8hwh7pkt/ – user2423131 2014-09-29 12:02:37

+0

謝謝Luizgrs。我不熟悉創建jsfiddle,但這是我所做的。希望能幫助到你。再次感謝。 http://jsfiddle.net/8hwh7pkt/ – user2423131 2014-09-29 12:05:11

回答

0

問題是拖動圖像('陰影')被移動到#word的角落,是否正確?

看起來Chrome正在計算位置錯了,可能是因爲<span><center>標籤,我猜...

您可以修復使用setDragImage方法,設置拖動圖像是的的target事件並設置偏移根據點擊位置,這將迫使瀏覽器渲染是正確的:

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'只是爲了測試是否是問題的原因,但它不是)

+0

謝謝Luizgrs。完成並工作。非常感謝你。真的很感謝快速幫助。魔法。 – user2423131 2014-09-29 12:51:13