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 相关文章推荐
javascript 处理HTML元素必须避免使用的一种方法
Jul 30 Javascript
用JavaScript修改CSS属性的代码
May 06 Javascript
js同比例缩放图片的小例子
Oct 30 Javascript
JavaScript获取flash对象与网上的有所不同
Apr 21 Javascript
js动态移动滚动条至底部示例代码
Apr 24 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
Jun 23 Javascript
jQuery、zepto、js常用小技巧
Feb 12 Javascript
jQuery+ajax实现批量删除功能完整示例
Jun 06 jQuery
在微信小程序中使用mqtt服务的方法
Dec 13 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
vue 实现锚点功能操作
Aug 10 Javascript
js实现特别简单的钟表效果
Sep 14 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 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
JavaScript实现网页头部进度条刷新
2017/04/16 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
python django事务transaction源码分析详解
2017/03/17 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
opencv与numpy的图像基本操作
2019/03/08 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
实例代码讲解Python 线程池
2020/08/24 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
拖鞋店创业计划书
2014/01/15 职场文书
2014春晚主持词
2014/03/25 职场文书
入党介绍人评语
2014/05/06 职场文书
代领毕业证委托书
2014/08/02 职场文书
《月光曲》教学反思
2016/02/16 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js