以下代码用于应该获取源项目和目标项目ID的列表框项目。它适用于获取源并将其存储在data
变量中。但是,data2
仅在目标列表项为空时才检索ID。如果目标有文本则不起作用。
如何获取列表项的ID而不是列表项中的标记?
感谢。
drop: function(event){
var data = event.dataTransfer.getData("text/plain");
var data2 = event.target.id;
alert("DROPPED: "+data+" "+data2);
event.preventDefault();
}
答案 0 :(得分:1)
就个人而言,我会使用属性parentNode
并继续在层次结构中上升,直到找到类型列表项的内容。
答案 1 :(得分:1)
tomdemuyt是正确的 - 事件目标可能不是列表项,而是它的一个子元素(鼠标碰巧悬停的元素)。典型的方法是:
var targetItem = event.target;
while (targetItem && targetItem.localName != "listitem")
targetItem = targetItem.parentNode;
var data2 = targetItem.id;