關於HTML5拖放中dataTransfer.setData()的問題。


 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="X-UA-COMPATIBLE" content="IE=edge" >
 6     <meta name="renderer" content="webkit" >
 7     <title>index</title>
 8     <script type="text/javascript" src="js/jquery2.0.0.min.js"></script>
 9     <style>
10         .ListRight a{
11             width: 244px;
12             height: 38px;
13             border: 1px solid #e3e3e3;
14             display: block;
15             line-height: 36px;
16             text-align: center;
17             color: #333333;
18         }
19 
20         .clearAll {
21             width: 300px;
22             height: 40px;
23             margin-top: 20px;
24             border: 1px solid #000;
25         }
26         .dragEvent {
27             width: 838px;
28             height: 70px;
29             background-color: #7ED321;
30             border-radius: 3px;
31             margin: 4px;
32         }
33     </style>
34     <script type="text/javascript">
35         $(function () {
36 
37             //開始
38             $('.ListRight a').on('dragstart', function (e) {
39                 e.dataTransfer.setData('text','Hello World');
40             });
41             //進入目標元素
42             $('.EventArea').on('dragenter', function (e) {
43                 e.preventDefault();
44             });
45             //在目標元素上移動
46             $('.EventArea').on('dragover', function (e) {
47                 e.preventDefault();
48             });
49             //移出目標元素
50             $('.EventArea').on('dragleave', function () {
51             });
52 
53             //被拖拽元素被放置在目標元素上
54             $('.EventArea').on('drop', function (e) {
55                 //阻止默認行為
56                 e.preventDefault();
57                 //阻止默認行為
58                 e.stopPropagation();
59                 $(this).append('<div class="dragEvent"> ' + e.dataTransfer.getData('text') + ' </div>');
60             });
61 
62             //拖拽結束
63             $('.ListRight a').on('dragend', function (e) {
64             });
65         })
66     </script>
67 </head>
68 <body>
69 
70 
71 <div class="ListRight">
72     <a draggable="true" href="#">順序執行</a>
73     <a draggable="true" href="#">條件執行</a>
74     <a draggable="true" href="#">順序執行</a>
75 </div>
76 
77 <div class="clearAll">
78 
79 </div>
80 </body>
81 </html>

 

上面是錯的演示

需要將

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

改成

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

function (e) {  e.dataTransfer.setData('text','Hello World'); 40 }

中的e是被jquery包裝過,不是原生的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM