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 相关文章推荐
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
ajax提交表单实现网页无刷新注册示例
May 08 Javascript
JQuery实现table行折叠效果以JSON做数据源
May 26 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
轻松搞定jQuery.noConflict()
Feb 15 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
VUEJS实战之构建基础并渲染出列表(1)
Jun 13 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
微信小程序动态生成二维码的实现代码
Jul 25 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
解决ant Design中Select设置initialValue时的大坑
Oct 29 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
海贼王:最美的悬赏令!
2020/03/02 日漫
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
php递归json类实例
2014/12/02 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
Python检测QQ在线状态的方法
2015/05/09 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
tensorflow转换ckpt为savermodel模型的实现
2020/05/25 Python
使用Python构造hive insert语句说明
2020/06/06 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
国际礼品店:GiftsnIdeas
2018/05/03 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
少先队学雷锋活动月总结
2014/03/09 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技