2013-10-04 104 views
1

我工作的拖放在HTML5但是當我村落我的項目我未捕獲的錯誤:NotFoundError:DOM異常8的任何一個可以幫助我。請檢查下面未捕獲錯誤:NotFoundError:DOM異常8?

<html> 
<head> 
<script> 

function drag(ev) 
    { 
console.log("call drag event method.."); 
ev.dataTransfer.setData("Text",ev.target.id); 
} 

function drop(ev) 
{ 
console.log("call drop event method.."); 
    ev.preventDefault(); 
    var data=ev.dataTransfer.getData("Text"); 
    ev.target.appendChild(document.getElementById(data)); 
} 
function allowDrop(ev) 
{ 
console.log("call allow event method.."); 
ev.preventDefault(); 
} 
</script> 
<body> 
<div id="selectedItems" style="overflow-y:scroll"> 
<button draggable="true" ondragstart="drag(event)">FirstName</button>   
<button draggable="true" ondragstart="drag(event)" >FirstName</button> 
<button draggable="true" ondragstart="drag(event)" >FirstName</button> 
</div> 
    <div id="selectedItems" ondrop="drop(event)" ondragover="allowDrop(event)"> 


       </div> 
</body> 
</html> 

我的代碼,但我下探按鈕的我得到了未捕獲的錯誤:NotFoundError:DOM例外8任何一個幫助我

+0

你能告訴我們拋出錯誤的地方嗎? – Misters

+0

Hi In This function function drop(ev) console.log(「call drop event method ..」); ev.preventDefault(); var data = ev.dataTransfer.getData(「Text」); ev.target.appendChild(document.getElementById(data)); } ev.target.appendChild(document.getElementById(data));行拋出錯誤 – user2767541

+0

我認爲沒有必要傳遞未定義的變量'event' ..'ondragstart =「drag」'就足夠了。 –

回答

1

在拖動您獲取元素(按鈕)的id並將其保存在事件數據中,但您的標記沒有id按鈕。所以你的appendChild失敗爲空(因爲document.getElementById爲空ID返回null)不是一個有效的html節點。

嘗試添加一些id到按鈕元素。

<button id="11" draggable="true" ondragstart="drag(event)">FirstName</button> 
<button id="21" draggable="true" ondragstart="drag(event)">FirstName</button> 
<button id="31" draggable="true" ondragstart="drag(event)">FirstName</button> 

Demo

也注意到,要複製的IDS中的div,這是不正確。 ID在文檔中必須是唯一的。您可以從第一個div中刪除該ID。

+0

嗨我檢查演示,但當我拖動按鈕沒有發生任何事 – user2767541

+0

@ user2767541我檢查了它,它的工作原理。把它放在接壤的地方。 – PSL

+0

嗨它的工作對我來說...謝謝 – user2767541

相關問題