我正在使用HTML5制作拖放系统。将图像从屏幕左侧拖动到右侧(这些图像标识为window1
和window2
。图像存储在一个数组中并附加到隐藏的输入元素,以便我可以将它们发送到通过submit
的下一页。问题是我只希望脚本检测window2
中丢弃的内容,而且我不想要多个条目。
function drop(ev)
{
//append the hidden child
number.toString();
var hidden = document.createElement("input");
hidden.type = "hidden";
hidden.name = "option"+number;
hidden.value = my_images;
var f = document.getElementById("select");
f.appendChild(hidden);
number++;
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
ev.preventDefault();
}
我正在考虑一个简单的if statement
,但我应该寻找什么?如何查看我当前放弃图像的位置?
onmouseover
事件以某种方式检查我当前悬停的元素是不是一个想法?如果是这样我怎么做到这一点?目前我写了这段小代码
var current = document.mouseover;
current = document.getElementById(this);
答案 0 :(得分:0)
HTML5规范不考虑拖动多个项目。因此(您似乎已经注意到上述情况)各种HTML5事件不会表示已拖动多个项目。
你没有在你的问题中明确说出这一点,但我的猜测是你认为(或者认为这是一个较老的问题)由于“鬼”而导致多个项目被拖拽。浏览器自动生成的图像。这些图像肯定会给人以拖拽多个元素的印象。
这些"鬼"存在许多已知的问题。图像以及浏览器生成它们的方式。特别是在拖动开始时生成重影图像,这意味着您定义合适拖动的代码都没有运行。即浏览器不知道你是在拖动一个巨大的巨大元素,一个小元素,还是你在拖拽之前不小心选择了很多文本......它会生成任何它看到的图像,并且#39你得到了什么。
在某些浏览器(不是IE)中,您可以使用更合适的内容替换拖动图像。如果您不关心IE,这通常可以解决,但如果您关心IE,那么您刚刚发现人们为什么对HTML5 API感到恼火。