HTML5拖放代码问题

functioninit()
{ var source = document.getElementById("dragme");
Vardest=document.getElementById("text"); // (1) 拖放开始
source.addEventListener("dragstart", function(ev) //添加监听事件
{ // 向dataTransfer对象追加数据
var dt =ev.dataTransfer; //DataTransfer对象用来存放拖放时要携带的数据,可以被设置为拖动事件对象的dataTransfer属性。
dt.effectAllowed = 'all';
//(2) 拖动元素为dt.setData("text/plain", this.id); 如果把“dt.setData("text/plain", "你好"); ”这一句改为“dt.setData("text/plain", this.id); ”,则因为把被拖动元素的id作为了参数,所以携带的数据就是被拖动元素中的数据了,因为浏览器在使用getData()方法读取数据时会自动读取该元素中数据。

dt.setData("text/plain", "你好"); }, false); // (3) dragend:拖放结束
//第一个参数中的表示数据种类的字符串里只能填入类似“text/plain”或“text/html”的表示MIME类型的文字,不能填入其他文字。

---------------------中的 dt.effectAllowed = 'all'; 什么意思?作用是什么?

1.effectAllowed属性表示允许拖放元素的哪种dropEffect。什么是dropEffect?也是dataTransfer 的一种属性。

dropEffect属性可以知道被拖动的元素能够执行哪种放置行为(当拖到目的地时)。这个属性有下列4个可能的值。
“none”:不能把拖动的元素放在这里。这是除文本框之外所有元素的默认值。
“move”:应该把拖动的元素移动到放置目标。
“copy”:应该把拖动的元素复制到放置目标。
“link”:表示放置目标会打开拖动的元素(但拖动的元素必须是一个链接,有URL)。

2. dt.effectAllowed = 'all':即说被拖动元素在放置到目的地时,可以上面的任意一种效果来处理。

3. 必须在ondraggstart事件处理程序中设置effectAllowed属性。
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网