• 商品呢拖拽到购物车,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>
    持之以恒!
  • 相关阅读:
    【架构】如何设计支持多租户的数据库?
    maven的仓库:本地和远程
    maven私服
    MSA(微服务简介)
    json数据的格式
    shiro的原理理解
    异构的概念?大数据量的异构处理?
    面试之多线程通信
    面试之并发的解决方案
    进程与线程的简单理解
  • 原文地址:https://www.cnblogs.com/ishenghuo/p/4261202.html
Copyright © 2020-2023  润新知