练习笔记:使用jQuery实现H5拖放(drag 和 drop)功能
2017-02-08 14:46
435 查看
遇到问题1:
在js里面可直接e.dataTransfer.setData("obj_add",e.target.id);
使用jQuery绑定事件时,需e.originalEvent.dataTransfer.setData("obj_add",e.target.id);
![](https://img-blog.csdn.net/20170208160232175?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpbGl6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在js里面可直接e.dataTransfer.setData("obj_add",e.target.id);
使用jQuery绑定事件时,需e.originalEvent.dataTransfer.setData("obj_add",e.target.id);
<!DOCTYPE html> <html> <head> <style type="text/css"> .backpack {width:400px;height:200px;border:1px solid #aaaaaa;} #div3 {width:200px;height:200px;border:1px solid #aaaaaa;} .item{ display:inline-block; background-color: antiquewhite; height: 25px; width: 50px; } </style> <meta charset="UTF-8"> <title></title> </head> <body> <div id="a" class="item" draggable="true">武器</div> <div id="b" class="item" draggable="true">衣服</div> <div id="c" class="item" draggable="true">鞋子</div> <div id="d" class="item" draggable="true">法宝</div> <div class="backpack" id="div1"><h4>人物属性</h4></div> <div class="backpack" id="div2"><h4>背包</h4></div><br /> <div id="div3"><h5>上面两个框的内容拖到此处可删除</h5></div> <script src="js/jquery-1.8.3.min.js"></script> <script type="text/javascript"> jQuery(function($) { //拖放开始:获取id放入dataTransfer $(".item").on("dragstart",function(e){ e.originalEvent.dataTransfer.setData("obj_add",e.target.id); }); //允许放入 $("#div1").on("dragover",function(e){ e.originalEvent.preventDefault(); }) //允许放入 $("#div2").on("dragover",function(e){ e.originalEvent.preventDefault(); }) //允许放入 $("#div3").on("dragover",function(e){ e.originalEvent.preventDefault(); }) //放下事件 $("#div1").on("drop",function(e){ e.originalEvent.preventDefault; var id = e.originalEvent.dataTransfer.getData("obj_add"); $(this).append($("#"+id)); //给新加入的元素添加拖放事件 $("#"+id).on("dragstart",function(e){ e.originalEvent.dataTransfer.setData("obj_remove",e.target.id); }); }) //放下事件 $("#div2").on("drop",function(e){ e.originalEvent.preventDefault; var id = e.originalEvent.dataTransfer.getData("obj_add"); $(this).append($("#"+id)); //给新加入的元素添加拖放事件 $("#"+id).on("dragstart",function(e){ e.originalEvent.dataTransfer.setData("obj_remove",e.target.id); }); }) //放下事件 用来删除 $("#div3").on("drop",function(e){ e.originalEvent.preventDefault; var r = e.originalEvent.dataTransfer.getData("obj_remove"); $("#"+r).remove(); }) ; }); </script> </body> </html>
相关文章推荐
- jQuery能够实现drag和drop功能的类似igoogle的插件
- 使用jQuery Draggable和Droppable实现拖拽功能
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- Atlas学习手记(7):使用DragOverlayExtender实现拖放功能
- 使用FlexBox和Json实现类似ComboBox(类似Google的输入提示和自动)功能-基于JQuery-ASP.NET
- GBin1教程:使用jQuery插件jquery.validationEngine实现表单验证功能
- 使用jQuery实现的简单滚动新闻功能
- 【转】使用 jQuery(Ajax)/PHP/MySQL实现自动完成功能
- 使用ASP.NET Atlas实现拖放(Drag & Drop)效果(上)
- 使用jQuery方便快捷的实现Ajax功能
- ITCAST视频-Spring学习笔记(使用JDK中的Proxy技术实现AOP功能)
- 使用jquery 实现 仿google 的智能提示输入框功能
- 使用ASP.NET Atlas实现拖放(Drag & Drop)效果(下)
- ASP.NET AJAX (Atlas) 拖放(Drag & Drop)功能6种实现方法总结
- [转]ASP.NET AJAX (Atlas) 拖放(Drag & Drop)功能6种实现方法总结
- 使用jQuery的ajax功能实现的RSS Reader
- 使用jquery实现全选,全不选,反选功能
- 使用jQuery插件和FCK实现csdn博客功能