关于HTML5拖放的问题?

阅读 3.8k
5 个回答

看了下,这应该是jquery的Bug。
你获得的这个e是jquery的,和原生的不是100%相同的,问题出在这里。

你需要得到原生的event,改成这样:

e.originalEvent.dataTransfer.setData('text','Hello World');

加一个originalEvent就好了。

多多利用谷歌,stackoverflow已经有相同的问题了。

参考资料:http://stackoverflow.com/ques...

别用jquery的event,H5原生的event支持。

clipboard.png

你只贴这个也看不出来是什么问题啊,就知道报错说有变量未定义

我测试了一下发现你这个代码问题好大,只能触发拖拽的开始和结束,找不到目标元素,我们做过这个拖拽,一时也解决不了你这个错误,不过你报的这个错误可以看看这个https://developer.mozilla.org...
刚刚发现你用了这个EventArea类名,但是在页面中根本就没设置。。。。

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        div{
            width: 800px;
            height: 200px;
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <div id="div1" ondragover="bb(event)" ondrop="cc(event,this)">
        <img id="img1" src="img/t01d02b4910982c7f6a.jpg" width="320px"height="200px"ondragstart="aa(event)"/>
        <img id="img2" src="img/t01d02b4910982c7f6a.jpg" width="320px"height="200px"ondragstart="aa(event)"/>
    </div>
    <div id="div2" ondragover="bb(event)" ondrop="cc(event,this)">
        
    </div>
    
    <script type="text/javascript">
        function aa(ev){
            ev.dataTransfer.setData("id",ev.target.id);
        }
        function bb(ev){
            ev.preventDefault();
        }
        function cc(ev,dome){
            var data=ev.dataTransfer.getData("id");
            var dom=document.getElementById(data);
            dom.parentNode.removeChild(dom);
            dome.appendChild(dom);
        }
    </script>
</body>

</html>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题