js利用拖放实现添加删除


Posted in Javascript onAugust 27, 2020

本文实例为大家分享了js利用拖放实现添加删除的具体代码,供大家参考,具体内容如下

实现的效果如下:

js利用拖放实现添加删除

代码如下:

<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html" charset="utf-8">
 <title>通过拖放实现添加删除</title>
 <style type="text/css">
 div>div{
  display: inline-block;
  padding: 10px;
  background-color: #aaa;
  margin: 3px;
 }
 </style>
</head>
<body>
 <!-- 文件所在地 -->
 <div style="width: 600px;border: 1px solid black;">
 <h2>可将喜欢的项目拖进收藏夹</h2>
 <div draggable="true" "dsHandler(event);">疯狂Java联盟</div>
 <div draggable="true" "dsHandler(event);">疯狂软件教育</div>
 <div draggable="true" "dsHandler(event);">关于我们</div>
 <div draggable="true" "dsHandler(event);">疯狂成员</div>
 </div>
 <!-- 收藏夹 -->
 <div id="dest" style="width: 400px;height: 260px;border: 1px solid black;float: left;">
 <h2 "return false;">收藏夹</h2>
 </div>
 <!-- 垃圾篓 -->
 <img id="gb" draggable="false" alt="垃圾篓" src="C:\Users\Administrator\Desktop\timg.jpg" style="float: left;width: 200px;height: 200px;">

 <!-- js -->
 <script type="text/javascript">
 let dest=document.getElementById("dest");
 //开始拖动事件的事件监听器
 let dsHandler=function(event){
  event.dataTransfer.setData("text/plain","<item>"+event.target.innerHTML);
 }

 dest.function(event){
  event.preventDefault();
  let text=event.dataTransfer.getData("text/plain");
  //如果该text以<item>开头
  if(text.indexOf("<item>")==0){
  //创建一个新的div
  let newEle=document.createElement("div");
  //以当前事件为该元素生成唯一的ID
  newEle.id=new Date().getUTCMilliseconds();
  //该元素内容为“拖”过来的数据
  newEle.innerHTML=text.substring(6);
  //设置该元素允许拖动
  newEle.draggable="true";
  //为该事件的开始拖动事件指定监听器
  newEle.function(event){
   //将被拖动元素的id属性值设置成被拖动的数据
   event.dataTransfer.setData("text/plain","<remove>"+newEle.id);
  }
  dest.appendChild(newEle);
  }
 }

 //当把被拖动元素“放”到垃圾篓上时触发该方法
 document.getElementById("gb").function(event){
  let id=event.dataTransfer.getData("text/plain");
  //如果id以<remove>开头
  if (id.indexOf("<remove>")==0) {
  //根据“拖”过来的数据,获取被拖动的元素
  let target=document.getElementById(id.substring(8));
  //删除被拖动的元素
  dest.removeChild(target);
  }
 }

 //ondragover 被拖动的元素进入本元素的范围内拖动时会不断地触发该事件
 document.function(event){
  //取消事件的默认行为
  return false;
 }

 //ondrop 其他元素被放到了本元素中时触发该事件
 document.function(event){
  //取消事件的默认行为
  return false;
 }
 </script>
</body>
</html>

到这里实现拖放结束。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
JavaScript动态添加列的方法
Mar 25 Javascript
javascript中的Function.prototye.bind
Jun 25 Javascript
浅谈javascript的Array.prototype.slice.call
Aug 31 Javascript
轻松掌握JavaScript中的Math object数学对象
May 26 Javascript
浅谈javascript中new操作符的原理
Jun 07 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
js处理包含中文的字符串实例
Oct 11 Javascript
最实用的JS数组函数整理
Dec 05 Javascript
npx create-react-app xxx创建项目报错的解决办法
Feb 17 Javascript
vue实现可拖拽的dialog弹框
May 13 Vue.js
微信小程序APP的生命周期及页面的生命周期
Apr 19 Javascript
基于jquery实现彩色投票进度条代码解析
Aug 26 #jQuery
Javascript call及apply应用场景及实例
Aug 26 #Javascript
Javascript类型判断相关例题及解析
Aug 26 #Javascript
Javascript基于OOP实实现探测器功能代码实例
Aug 26 #Javascript
Javascript如何实现扩充基本类型
Aug 26 #Javascript
Javascript var变量删除原理及实现
Aug 26 #Javascript
js实现车辆管理系统
Aug 26 #Javascript
You might like
php 前一天或后一天的日期
2008/06/28 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
Javascript UrlDecode函数代码
2010/01/09 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
Python验证企业工商注册码
2015/10/25 Python
Python算法应用实战之栈详解
2017/02/04 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
天网面试题
2013/04/07 面试题
迟到检讨书500字
2014/02/05 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
自荐信的格式
2014/03/10 职场文书
霸王洗发水广告词
2014/03/14 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
职位证明模板
2015/06/23 职场文书
2016年记者节感言
2015/12/08 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
特别篇动画《总之就是非常可爱 ~制服~》PV公开,2022年夏季播出
2022/04/04 日漫
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js