zoukankan      html  css  js  c++  java
  • Jquery快速构建可拖曳的购物车DragDrop

     本文来源:http://www.cnblogs.com/ywqu/archive/2009/11/29/1613367.html

    拖曳功能早已经成为各个网站吸引用户的一大亮点,那有没有想过如何把拖曳功能应用到电子商务网站的购物车功能模块中呢? 这样一来,购买者只需要把自己感兴趣的商品拖曳到自己的购物车中,也可以从购物车中删除商品 同时更新购物车的总体价格和数量。

    那咱们就开始实例吧,本实例并没有链接数据库读取数据来初始化Products,而是创建了一些虚拟的商品如下:

    1、 创建Product实体类

    public class Product

        {

            public string Code { get; set; }

            public string Name { get; set; }

            public string Description { get; set; }

            public double Price { get; set; }

    }

     

    2、 构建商品List<Product>

    public class Product

        {

            public string Code { get; set; }

            public string Name { get; set; }

            public string Description { get; set; }

            public double Price { get; set; }

    }

     

    3、创建DataList并绑定List<Product>

    <asp:DataList ID="dlProducts" RepeatColumns="3"

             RepeatDirection="Horizontal" runat="server">

     

        <ItemTemplate>

     

        <div class="productItemStyle" price='<%# Eval("Price") %>'

             code='<%# Eval("Code") %>' id='item_<%# Container.ItemIndex + 1 %>'>

        <li>

        <%# Eval("Code") %>

        </li>

        <li>

        <%# Eval("Name") %>

        </li>

        <li>

        <%# Eval("Description") %>

        </li>

     

         <li>

        $<%# Eval("Price") %>

        </li>

        </div>

     

        </ItemTemplate>

     

        </asp:DataList>

    private void BindData()

    {

        var products = GetProducts();

     

        dlProducts.DataSource = products;

        dlProducts.DataBind();

    }

    productItemStyle 样式名称

    Container.ItemIndex动态生成连续的商品编号

     

    4、 生成Products Div Draggable

    下载最新的Jquery JS文件及其UI文件:

    <script language="javascript" type="text/javascript" src="jquery-1.2.6.min.js"></script>

    <script language="javascript" type="text/javascript"

    src="jquery-ui-personalized-1.6rc4.min.js"></script>

     

    页面初始化时生成Div Draggable

     

    $(document).ready(function() {

     

            $(".productItemStyle").draggable({ helper: "clone", opacity: "0.5" });

    )};

     

    5、创建一个DropZone

    DropZones 是购物车区域

    $(".dropZone").droppable(

            {

                accept: ".productItemStyle",

                hoverClass: "dropHover",

                drop: function(ev, ui) {

     

                    var droppedItem = ui.draggable.clone().addClass("droppedItemStyle");

     

                    var productCode = droppedItem[0].attributes["code"].nodeValue;

                    var productPrice =

                     getFormattedPrice(droppedItem[0].attributes["price"].nodeValue);

     

                    var removeLink = document.createElement("a");

                    removeLink.innerHTML = "Remove";

                    removeLink.className = "deleteLink";

                    removeLink.href = "#";

                    removeLink.onclick = function()

                    {

                        $(".dropZone").children().remove("#" + droppedItem[0].id);

                        updateTotal(productPrice * (-1));

                    }

     

                    droppedItem[0].appendChild(removeLink);

     

                    $(this).append(droppedItem);

     

                    updateTotal(productPrice);

                }

            }

            );

    Accept参数:展示Class= productItemStyleDiv

    hoverClass参数:当有Product放到DropZone时的样式

    drop函数:当Product拖放到DropZone时出发的函数,此函数主要做了一个Product ItemClone,价格的计算、添加Remove按钮以及到点击Remove按钮时所触发的事件。

     

    价格的计算updateTotal()函数

    // update the total!

        function updateTotal(price) {

     

            total += parseFloat(price);

            $("#total").html(total.toFixed(2));

            $(".shoppingCartTotal").effect("bounce");

     

    }

     

    最终效果如下图:

     

     

     

    英文原文地址:http://www.codeproject.com/KB/aspnet/JQueryShoppingCart.aspx

  • 相关阅读:
    IIS是如何处理ASP.NET请求的
    c# Socket通讯中关于粘包,半包的处理,加分割符
    windows2008(64位)下iis7.5中的url伪静态化重写(urlrewrite)
    C#微信公众号/订阅号开发 接口源码
    C#线程池多线程Socket通讯 服务器端和客户端示例
    百度地图JS调用示例
    c# 图片转二进制/字符串 二进制/字符串反转成图片
    电商项目面试总结
    96. Unique Binary Search Trees
    92.Reverse Linked List II
  • 原文地址:https://www.cnblogs.com/weekend001/p/1642658.html
Copyright © 2011-2022 走看看