我試圖將元素拖放到另一個元素,但它不工作。我得到的錯誤是無法setData('undefined')允許元素拖放
Uncaught TypeError: Cannot read property 'setData' of undefined
和
Uncaught TypeError: Cannot read property 'getData' of undefined
與視場中的第一個第二個。
我想放棄的元素看起來是這樣的:
<main id="post-it" class="post-it-content">
<div class="vertical-stripes"></div>
<div class="vertical-stripes"></div>
<ul class="nav">
<li>
<span class="normal-text"></span>
<span class="normal-text"></span>
</li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li class="notes-footer"></li>
</ul>
<textarea id="notes-area"></textarea>
</main>
這是畫面中的黃色看,還注意到了下來。
然後我處理拖入和滴像這樣:
var dragAndDrop = {
allowDrop: function(e) {
e.preventDefault();
},
drop: function(e) {
e.preventDefault();
var data = e.dataTransfer.getData("text");
e.target.appendChild(document.getElementById(data));
},
drag: function(e) {
e.dataTransfer.setData("text", e.target.id);
e.dataTransfer.effectAllowed = 'move';
}
}
並綁定元件與相應功能是這樣的:
$('.post-it-content').on('dragstart', dragAndDrop.drag); //Yellow note element
li.on('drop', dragAndDrop.allowDrop);
li.on('dragover', dragAndDrop.drop);
凡li
元件(一個或多個)是正方形(s)in this image:
現在我不理解的是爲什麼我得到了我得到的錯誤,我完全像這裏找到的例子那樣(儘管不是用圖像):http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_draganddrop但對我來說它不起作用。任何想法爲什麼這不起作用?
嘗試做e.dataTransfer的的console.log,看看它是 –
@LiamSchauerman以及這顯然是不確定的,但我不明白爲什麼它是不確定的。 – Chrillewoodz