2016-12-31 183 views
0

即使屬性爲draggable="true",圖像在Firefox中的拖動方式是否有任何原因?我在JS中設計一個圖像交換腳本,但在Firefox中運行時遇到了一些問題。儘管代碼在Chrome,Edge和IE中運行良好,但當我嘗試在Firefox中拖放圖像時,它並不顯示爲瀏覽器正在拖動圖像(不顯示幻象圖像),因此我的拖動事件沒有觸發或觸發任何放置事件。我通過document.createElement('img')生成圖像,並與在Firefox中拖動元素的問題

imgElement.setAttribute('draggable', true); 
imgElement.setAttribute('ondragstart', 'drag(event)'); 

設置的屬性我拖動功能:

function drag(ev) { 
if (!ev.target.classList.contains(clickClass)) { 
    return; 
} 

ev.dataTransfer.setData("text", ev.target.id); 
document.getElementById(ev.target.id).parentElement.setAttribute('class', 'noclick'); 
}; 

我在一個不同的問題,如果數據不是拖動事件可能不會在Firefox火閱讀被轉移,但是,這似乎並不是問題。

+1

請提供一個工作示例(不僅是部分代碼)。這將是獲得幫助的最佳方式。你可以使用http://jsfiddle.net,或者創建一個[snippet](https://stackoverflow.blog/2014/09/introducing-runnable-javascript-css-and-html-code-snippets/) – Dekel

+0

我創建了一個jsfiddle,它似乎在jsfiddle中工作,但不在網站上。如果我刪除了這篇文章,它會好嗎?因爲它看起來問題可能與JS沒有關係? – wallabe

回答

2

相反的imgElement.setAttribute('ondragstart', 'drag(event)');你應該添加dragstart監聽器來代替:

imgElement.addEventListener('dragstart', function(e){ 
    drag(e); 
}); 
+1

我創建了一個jsfiddle,它似乎在jsfiddle中工作,但不在網站上。如果我刪除了這篇文章,它會好嗎?因爲它看起來問題可能與JS沒有關係? – wallabe

+0

如果你刪除這篇文章,我不會從它得到投票。有沒有理由刪除它?我認爲答案是正確的... – Dekel

+0

我可以把它留下來,它只是說問題似乎不是源於Javascript本身。也就是說,當我將我的舊代碼插入jsfiddle時,它具有期望的結果。 – wallabe