1.本例中模仿了购物车添加的功能

主要运用了ondragstart / ondragover/ ondrag 功能

功能比较简单

遗留问题:火狐下图片拖进会被打开

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
body,ul,img,p{margin:0;padding:0;}
li{list-style:none;}
li{float:left;width:200px;margin:10px;border:1px solid #000;height:300px;}
li img{width:200px;height:250px;}
p{height:20px;border-bottom:1px dashed #666;}
#div1{clear:both;width:600px;height:400px;border:1px solid #000;margin:20px;}
.box1{float:left;width:200px;}
.box2{float:left;width:200px;}
.box3{float:left;width:200px;}
#allMoney{float:right;} </style>
<script>
window.onload = function(){
var aLi = document.getElementsByTagName('li');
var oDiv = document.getElementById('div1');
var obj = {};
var oMoney = null;
var iNum = 0;
for(var i=0;i<aLi.length;i++){
aLi[i].ondragstart = function(ev){
var ev = ev || window.event;
var aP = this.getElementsByTagName('p');
ev.dataTransfer.setData('title',aP[0].innerHTML);
ev.dataTransfer.setData('money',aP[1].innerHTML);
ev.dataTransfer.setDragImage(this,0,0);
};
}
oDiv.ondragover = function(ev){
var ev = ev || window.event;
ev.preventDefault(); //如果想要实现drop功能 必须组织默认事件
}; oDiv.ondrop = function(ev){
var ev = ev || window.event;
ev.preventDefault(); // 阻止图片进来打开 var sTitle = ev.dataTransfer.getData('title');
var sMoney = ev.dataTransfer.getData('money');
if(!obj[sTitle]){
var oP = document.createElement('p');
var oSpan = document.createElement('span');
oSpan.className = 'box1';
oSpan.innerHTML = 1;
oP.appendChild(oSpan); var oSpan = document.createElement('span');
oSpan.className = 'box2';
oSpan.innerHTML = sTitle;
oP.appendChild(oSpan); var oSpan = document.createElement('span');
oSpan.className = 'box3';
oSpan.innerHTML = sMoney;
oP.appendChild(oSpan); oDiv.appendChild(oP);
obj[sTitle] = 1;
}else{
var arrBox1 = document.getElementsByClassName('box1');
var arrBox2 = document.getElementsByClassName('box2'); for(var i=0;i<arrBox1.length;i++){
if(arrBox2[i].innerHTML == sTitle){
arrBox1[i].innerHTML = parseInt(arrBox1[i].innerHTML)+1;
break;
}
}
} if(!oMoney){
oMoney = document.createElement('div');
oMoney.id = 'allMoney'; }
iNum += parseInt(sMoney);
oMoney.innerHTML = iNum +'¥';
oDiv.appendChild(oMoney);
}; };
</script>
</head> <body>
<ul>
<li draggable="true">
<img src="data:image/img1.jpg"/>
<p>javascript语言精粹</p>
<p>40¥</p>
</li>
<li draggable="true">
<img src="data:image/img2.jpg"/>
<p>javascript权威指南</p>
<p>120¥</p>
</li>
<li draggable="true">
<img src="data:image/img3.jpg"/>
<p>精通javascript</p>
<p>50¥</p>
</li>
<li draggable="true">
<img src="data:image/img4.jpg"/>
<p>DOM编程艺术</p>
<p>70¥</p>
</li>
</ul>
<div id="div1">
<!-- <p>
<span class="box1">1</span>
<span class="box2">DOM编程艺术</span>
<span class="box3">45¥</span>
</p>
<p>
<span class="box1">1</span>
<span class="box2">DOM编程艺术</span>
<span class="box3">45¥</span>
</p>
<p>
<span class="box1">1</span>
<span class="box2">DOM编程艺术</span>
<span class="box3">45¥</span>
</p>
<div id="allMoney">90¥</div>-->
</div>
</body>
</html>

最新文章

  1. springMVC配置Json
  2. Word Excel 操作总结
  3. c++ 头文件包含问题-include&amp;class
  4. socket用法以及tomcat静态动态页面的加载
  5. win10 uwp 通知列表
  6. font-size:100% 原因
  7. 程序员的自我救赎---1.4.2: 核心框架讲解(BLL&amp;Tool)
  8. Weblogic 12c 负载均衡和session复制
  9. ubuntu16.04 backup and restore
  10. Confluence 6 针对 &#39;unmigrated-wiki-markup&#39; 宏重新尝试合并
  11. mssql sqlserver 批量删除所有存储过程的方法分享
  12. boost--内存池
  13. go语言之行--包与变量
  14. java根据模板文件导出pdf
  15. ptime概述
  16. javascript中 try catch finally 的使用
  17. 如何修改被hosts.deny禁止访问的IP
  18. Caffe 学习:Eltwise层
  19. java杂项
  20. CentOS7.6下模拟iSCSI,Windows来连

热门文章

  1. JsonPath入门教程
  2. Jeninks远程部署war包
  3. 写了个通作的分页存储过程,top,加入了排序
  4. 押宝在Apple Watch的智能手表游戏玩得转吗?
  5. resin远程调试debug
  6. python IO多路复用版FTP
  7. Android Pay正式启用 支付宝们还好吗
  8. js之构造函数的理解
  9. sql-- 找到重复数据并删除、有重复数据不插入或更新的处理方法
  10. 【2020Python修炼记3】初识Python,你需要知道哪些(一)