商品呢拖拽到购物车,appendChild的剪切功能

今天来到了妙味课堂的html5课程的第2张的第8节,讲的是把商品拖拽到购物车的演示。其中有一个关于appendChild的使用,,每次拖拽都会触发这个方法,但是每次之后,却还是只有一个总价,好吧,说不清楚,一起来看程序:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>拖拽购物车</title>
    <style>
    *{ margin:0;padding:0;}
    li{ list-style: none;}
    li{ float: left;width: 200px;border:1px #000 solid;margin:10px; }
    li img{ width:250px; height: 300px;}
    li p,
    #div1 p{ border-bottom: 1px dashed #000;}

    #div1 { width:900px;height:400px;border:1px #000 solid; clear:both;}
    #div1 .box1{ width:left;width:200px;}
    #div1 .box2{ width:left;width:200px;}
    #div1 .box3{ width:left;width:200px;}
    #div1 span{ margin-left:30px;}

    #allMoney{float:right; font-size:28px;}

    </style>
</head>
<body>
    <ul>
        <li draggable="true">
            <img src="http://2a.zol-img.com.cn/article/11_120x90/742/liyoKyAnvblM.jpg" alt="">
            <p>zol商品1</p>
            <p>32.5</p>
        </li>
        <li draggable="true">
            <img src="http://2a.zol-img.com.cn/article/11_120x90/742/liyoKyAnvblM.jpg" alt="">
            <p>zol商品2</p>
            <p>32.5</p>
        </li>
        <li draggable="true">
            <img src="http://2a.zol-img.com.cn/article/11_120x90/742/liyoKyAnvblM.jpg" alt="">
            <p>zol商品3</p>
            <p>32.5</p>
        </li>
    </ul>
    <div id="div1">
        <!--<p>
            <span class="box1">1</span>
            <span class="box2">商品1</span>
            <span class="box3">45</span>
        </p>
        <p>
            <span class="box1">2</span>
            <span class="box2">商品2</span>
            <span class="box3">45</span>
        </p>
        <p>
            <span class="box1">3</span>
            <span class="box2">商品3</span>
            <span class="box3">45</span>
        </p>
        <div id="allMoney">90元</div>
        -->
    </div>

    <script>
    window.onload = function(){
        var aLi = document.getElementsByTagName(‘li‘);
        var obj = {};
        var allMoney = null;
        var sum = 0;
        oDiv = document.getElementById(‘div1‘);
        for(var i=0,max=aLi.length;i<max;i++){
            aLi[i].ondragstart = function(ev){
                var aP = this.getElementsByTagName(‘p‘);
                //alert(aP.length);
                ev.dataTransfer.setData(‘title‘,aP[0].innerHTML);
                ev.dataTransfer.setData(‘money‘,aP[1].innerHTML);
                ev.dataTransfer.setDragImage(this,0,0);
                //ev.preventDefault();//阻止默认事件
            };
        }
        oDiv.ondragover = function(ev){
            ev.preventDefault();//阻止默认事件
        };
        oDiv.ondrop = function(ev){
            ev.preventDefault();//阻止默认事件
            var title = ev.dataTransfer.getData(‘title‘);
            var money = ev.dataTransfer.getData(‘money‘);
            if(!obj[title]){
                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 = title;
                oP.appendChild(oSpan);
                var oSpan = document.createElement(‘span‘);
                oSpan.className = ‘box3‘;
                oSpan.innerHTML = money;
                oP.appendChild(oSpan);

                oDiv.appendChild(oP);

                obj[title] = true;

            }else{
                var box1 = document.getElementsByClassName(‘box1‘);
                var box2 = document.getElementsByClassName(‘box2‘);
                for(var i=0,max = box2.length;i<max;i++){
                    if(box2[i].innerHTML == title){
                        box1[i].innerHTML = parseInt(box1[i].innerHTML)+1;
                    }
                }
            }
            if(!allMoney){
                allMoney = document.createElement(‘div‘);
                allMoney.id = ‘allMoney‘;
            }
            sum += Number(money);
            allMoney.innerHTML = sum+‘元‘;
            oDiv.appendChild(allMoney);//apendChild的剪切功能

        };

    };

    </script>
</body>
</html>
时间: 2024-10-23 14:17:06

商品呢拖拽到购物车,appendChild的剪切功能的相关文章

拖拽至购物车

此需求用到了四大功能点,1.重构alert,confirm:2.拖拽功能:3.读取静态json:4.ajax提交产品信息: 此需求要求安装在客户方互动茶几终端上,要求尽量方便,无需配置相关语言环境,纯静态化: alert,confirm,在之前的文章中有详细描述,这边就不再写了. 演示地址:http://120.26.59.104/text/list.html 此项目是展示在大屏本地上,外网访问首次加载可能会慢 1.拖拽使用了jquery插件模式 (function($) { var old =

js仿百度地图拖拽、缩放、添加图层功能(原创)

最近项目中完成的需求,仿百度地图中的功能: 要求:1.底层图可以拖拽.缩放.     2.拖拽一个图标,在底层图上对应位置添加一个标注点,该标注点位置要随底层图移动. 3.添加的标注点,可以拖动,删除. 主要知识点和难点就是各个浏览器的点击.拖拽.缩放事件兼容性,对js运动属性.运动偏移位置的了解,以及js面向对象的应用. 这里跟大家分享一下完成后的代码. html代码主要知识点就是运动元素和底层元素的相对绝对定位,css代码不再贴出: <div id="warp" style=

Extjs4 实现两个DataView之间元素的拖拽添加及删除

最近项目接到一个需求,要求用拖拽实现在两个Panel之间实现拖拽添加和删除元素的功能. 首先想到的是EXTJS提供的View组件,View组件绑定一个Store和Template就可以得到预期的UI显示效果,再加上EXTJS提供的DD(Drag and Drop)功能,则可以实现两个View组件之前的元素拖拽添加以及删除. 效果如下: Demo代码实例如下: 1 Ext.onReady(function(){ 2 3 var columnData = [ 4 ["Consignee",

Javascript 拖拽的一些简单的应用——逐行分析代码,让你轻松了解拖拽的原理

今天我们来看看如何让拖拽的物体不能拖出某个div之外和拖拽的吸附功能 上次讲到我们的拖拽是不可拖出可视区范围的,在这基础上我们加个父级的div,不让他拖出父级.原理和之前的一样,简单吧. <style type="text/css"> #div1 { width: 100px; height: 100px; background: red; position: absolute; } #div2 { width: 400px; height: 300px; backgrou

浏览器兼容的实现table中通过拖拽改变列宽的最佳实践

在企业级应用中,表格是非常常见的展现方式,这时当列数据较长时,一种比较自然,体验也较好的处理方式就是通过拖拽改变列宽,这个功能在一些重量级JS组件库中都有提供,实现原理各有不同,但是一个共同点就是实现比较复杂,那我们通过很少的代码,常规的table结构,能实现这个功能么?本文将提供一个经过实际验证的实践,供开发者参考,扩展思路. 总体思路: 1.HTML结构: 为了简化代码,采用标准的HTML结构,即table-tr-td模式,无其他限制,在我们的实际应用中,表格非常复杂,但是核心技术没有变:

从下拉菜单拖拽一个元素 出来,插入到页面中的app 列表中

1,实现功能:从下拉菜单拖拽一个元素 出来,插入到页面中的app 列表中 并实现app向后移动一个元素的位置: 2.实现思路: 01.遍历下拉菜单,添加拖拽方法,实现位置移动功能: 02.遍历app列表,将app位置存为数组,进行循环: 03.拖拽元素与当前app做碰撞检测: 04.如果鼠标在app内部,则将拖拽元素添加到当前app之后,位置设置为当前 i 的值: 参考代码如下: <!doctype html> <html lang="en"> <head

Javascript实现鼠标框选元素后拖拽被框选的元素

之前需要做一个框选元素后拖拽被框选中的元素功能,在网上找资料做了一些修改,基本达到了需要的效果,希望对也需要实现框选后拖拽元素功能的人有用. 页面加载后效果 框选后的内容可以拖拽,如下图: 代码下载

HTML5自学笔记[ 10 ]简单的购物车拖拽

用html5拖拽功能实现了一个简单的购物车,样式简陋,得学学画画提高下审美了T^T: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>购物车拖拽</title> 6 7 <style> 8 *{ margin:0; padding:0;} 9 #proList{ overflow:hidden;} 10 #pro

妙味课堂实战功能开发视频教程 3D翻转焦点图/瀑布流/拖拽购物车/模块化开发等实战教程

<HTML5梦工厂 - 码农俱乐部视频>├<第八期码农俱乐部-技术之夜-3D翻转焦点图>│  ├1-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  ├2-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  ├3-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  └lesson8.zip├<第二期码农俱乐部-技术之夜-瀑布流效果>│  ├1-码农俱乐部技术之夜-瀑布流效果1(原理介绍)_.mkv│  ├2-码农俱乐部技术之夜-瀑布流效果2(布局和数据的获取)_.mkv│