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 相关文章推荐
JS去除字符串的空格增强版(可以去除中间的空格)
Aug 26 Javascript
js判断屏幕分辨率的代码
Jul 16 Javascript
js处理表格对table进行修饰
May 26 Javascript
jQuery中last()方法用法实例
Jan 06 Javascript
jQuery实现瀑布流的取巧做法分享
Jan 12 Javascript
基于jquery实现省市区三级联动效果
Dec 25 Javascript
js点击返回跳转到指定页面实现过程
Aug 20 Javascript
使用jQuery操作DOM的方法小结
Feb 27 Javascript
jQuery实现验证码功能
Mar 17 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
May 08 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
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
destoon二次开发入门示例
2014/06/20 PHP
8个必备的PHP功能开发
2015/10/02 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
js的一些常用方法小结
2011/06/29 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
详解Angular 4 表单快速入门
2017/06/05 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
Python之str操作方法(详解)
2017/06/19 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
Windows下python3.7安装教程
2018/07/31 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
一套C++笔试题面试题
2012/06/06 面试题
毕业生自我鉴定
2013/11/05 职场文书
编辑找工作求职信范文
2013/12/16 职场文书
探亲假请假条
2014/04/11 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
2015员工年度考核评语
2015/03/25 职场文书
停电通知范文
2015/04/16 职场文书
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL