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实现划词标记+划词搜索功能
Mar 06 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
Jul 30 Javascript
用js实现的自定义的对话框的实现代码
Mar 21 Javascript
简单的js表单验证函数
Oct 28 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
Oct 29 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
Mar 11 Javascript
详解如何写出一个利于扩展的vue路由配置
May 16 Javascript
php结合js实现多条件组合查询
May 28 Javascript
JS如何把字符串转换成json
Feb 21 Javascript
详解vue v-model
Aug 31 Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 Javascript
基于Vue+Webpack拆分路由文件实现管理
Nov 16 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 文件上传限制问题
2019/09/01 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
koa源码中promise的解读
2018/11/13 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
python Pexpect 实现输密码 scp 拷贝的方法
2019/01/03 Python
django页面跳转问题及注意事项
2019/07/18 Python
使用Python的turtle模块画国旗
2019/09/24 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
浅谈keras2 predict和fit_generator的坑
2020/06/17 Python
如何利用python生成MD5并去重
2020/12/07 Python
网络编辑岗位职责
2014/03/18 职场文书
幼儿生日活动方案
2014/08/27 职场文书
师德师风整改措施
2014/10/24 职场文书
担保书格式
2015/01/20 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang
Nginx配置https的实现
2021/11/27 Servers