练习笔记:使用jQuery实现H5拖放(drag 和 drop)功能

遇到问题1:
在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>


  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值