6、easyUI-拖放事件及應用

来源:http://www.cnblogs.com/jianyeLee/archive/2016/07/16/5675112.html
-Advertisement-
Play Games

一、EasyUI 基本的拖動和放置 直接代碼看: 二、購物車 三、課程表 ...


一、EasyUI 基本的拖動和放置

直接代碼看:

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="keywords" content="jquery,ui,easy,easyui,web">
    <meta name="description" content="easyui help you build your web page easily!">
    <title>6、easyui 拖放</title>
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/color.css">
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.easyui.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/locale/easyui-lang-zh_CN.js"></script>
    <script>
        $(function(){
            $("#dd1").draggable({
                cursor:'pointer'//拖動時的CSS指針樣式。
            });
            $("#dd2").draggable({
                proxy:'clone'
            });
            $("#dd3").draggable({
                    proxy:function(source){
                    var p = $('<div class="proxy">proxy</div>');
                    p.appendTo('body');
                    return p;
                }
            });
            $('#dds').draggable({ 
                handle:'#titles' //開始拖動的句柄。
            }); 
        });
    </script>
    
</head>
<body>
    <div id="dd1" style="background: red;width:100px;height: 100px;" title="hhhh"></div>
    <!--revert="true" 如果設置為true,在拖動停止時元素將返回起始位置。-->
    <div id="dd2" style="background: black;width:100px;height: 100px;" revert="true"></div>
    <div id="dd3" style="background: grey;width:100px;height: 100px;"></div>
    <div id="dd" class="easyui-draggable" data-options="handle:'#title'" style="width:100px;height:100px;">    
        <div id="title" style="background:#ccc;">title</div>
    </div>

    <div id="dds" style="width:100px;height:100px;"> 
        <div id="titles" style="background:#ccc;">title</div> 
    </div> 

<a style="cursor: move;">2222</a>

</body>
</html>

二、購物車

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="keywords" content="jquery,ui,easy,easyui,web">
    <meta name="description" content="easyui help you build your web page easily!">
    <title>6-1、easyui 購物車</title>
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/icon.css">
    <link rel="stylesheet" type="text/css" href="../../../ui/jquery-easyui-1.4.5/themes/color.css">
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/jquery.easyui.min.js"></script>
    <script src="../../../ui/jquery-easyui-1.4.5/locale/easyui-lang-zh_CN.js"></script>
    <style>
        /*開始 第二步 設置拖動區樣式*/
        .products{
            list-style:none;
            margin-right:700px;
            padding:0px;
            height:100%;
        }
        .products li{
            display:inline;
            float:left;
            margin:10px;
        }
        .item{
            display:block;
            text-decoration:none;
        }
        .item img{
            border:1px solid #333;
        }
        .item p{
            margin:0;
            font-weight:bold;
            text-align:center;
            color:#c3c3c3;
        }
        /*結束 第二步 設置拖動區樣式*/
        
        /*開始 第四步 設置放置區樣式*/
        .cart{
            position:fixed;
            right:0;
            top:0;
            min-width:500px;
            height:100%;
            background:#ccc;
            padding:0px 10px;
        }
        h1{
            text-align:center;
            color:#555;
        }
        h2{
            position:absolute;
            font-size:16px;
            left:10px;
            bottom:20px;
            color:#555;
        }
        .total{
            margin:0;
            text-align:right;
            padding-right:20px;
        }
        /*結束 第四步 設置放置區樣式*/
    </style>
    <script>
        var data = {"total":0,"rows":[]};
        var totalCost = 0;
        
        
        $(function(){
            /**開始 第五步 設置放置區中table的屬性及樣式**/
            $('#cartcontent').datagrid({//這段代碼可以直接寫在頁面上   設置table clas="easyUI-datagrid" singleSelect="true" fitColumns="true"
                singleSelect:true,    //表格屬性    如果為true,則只允許選擇一行  不設置可以選擇多行
                //fitColumns:true,//真正的自動展開/收縮列的大小,以適應網格的寬度,防止水平滾動。
                //同列屬性,但是這些列將會被凍結在左側。
                frozenColumns:[[
                    {field:'name',title:'name',width:100}
                ]] ,
                //設置表頭
                columns:[[    
                    {field:'quantity',title:'quantity',width:100,align:'right'},    
                    {field:'price',title:'price',width:150,align:'right'} ,
                    {field:'mark',title:'mark',width:150,align:'right'} ,
                    {field:'mark2',title:'mark2',width:150,align:'right'}   
                ]] ,
                ////調整列的位置,可用的值有:'left','right','both'。在使用'right'的時候用戶可以通過拖動右側邊緣的列標題調整列 預設為right
                resizeHandle:'both',
               // striped:true,//預設是false 顯示斑馬線效果
                rownumbers:true//顯示一個行號預設不顯示。   
            });
            /**結束 第五步 設置放置區中table的屬性及樣式**/
            
            
            
            /**開始 第六步 設置拖動區的效果以及觸發事件**/
            //拖動設置
            $('.item').draggable({
                revert:true,//如果設置為true,在拖動停止時元素將返回起始位置。預設為false  
                proxy:'clone',//在拖動的時候使用的代理元素,當使用'clone'的時候,將使用該元素的一個複製元素來作為替代元素
                
//                事件
                onStartDrag:function(){//在目標對象開始被拖動時觸發。
                    $(this).draggable('options').cursor = 'not-allowed';//設置被拖動時不允許再選中
                    $(this).draggable('proxy').css('z-index',10);//攝者克隆後的屬性
                },
//                事件
                onStopDrag:function(){//在拖動停止時觸發。
                    $(this).draggable('options').cursor='move';//設置滑鼠屬性為拖動形狀
                }
            });
            /**結束 第六步 設置拖動區的效果以及觸發事件**/
            
            
            
            /**開始 第七步 設置放置區的效果以及觸發事件**/
            //放置
            $('.cart').droppable({//設置在div的class屬性為cart的區域內都被視為放置區
                //在被拖拽元素到放置區內的時候觸發,source參數表示被拖拽的DOM元素。
                onDragEnter:function(e,source){
                    $(source).draggable('options').cursor='auto';//設置拖動的滑鼠樣式
                },
                //在被拖拽元素經過放置區的時候觸發,source參數表示被拖拽的DOM元素
                onDragOver:function(e,source){
                    $('.cart').css("background","#0088CC");//設置放置區背景色
                },
                //在被拖拽元素離開放置區的時候觸發,source參數表示被拖拽的DOM元素。
                onDragLeave:function(e,source){
                    $(source).draggable('options').cursor='not-allowed';//設置拖動的滑鼠樣式
                    $('.cart').css("background","#CCC");//設置拖動的離開放置區,放置區的背景色
                },
                //在被拖拽元素放入到放置區的時候觸發,source參數表示被拖拽的DOM元素。
                onDrop:function(e,source){
                    var name = $(source).find('p:eq(0)').html();//獲取商品名稱
                    var price = $(source).find('p:eq(1)').html();//獲取商品價格
                    addProduct(name, parseFloat(price.split('$')[1]));//調用添加商品方法
                    $('.cart').css("background","#CCC");//設置放入到放置區,放置區的背景色
                }
            });
            /**結束 第七步 設置放置區的效果以及觸發事件**/
        });
        
        //最後 添加物品方法函數
        function addProduct(name,price){
            function add(){
                for(var i=0; i<data.total; i++){
                    var row = data.rows[i];
                    if (row.name == name){
                        row.quantity += 1;
                        return;
                    }
                }
                data.total += 1;
                data.rows.push({
                    name:name,
                    quantity:1,
                    price:price
                });
            }
            add();
            totalCost += price;
            $('#cartcontent').datagrid('loadData', data);
            $('div.cart .total').html('Total: $'+totalCost);
        }
    </script>
</head>
<body style="margin:0;padding:0;height:100%;background:#fafafa;">
    <!--開始 第一步    拖動區設置-->
    <ul class="products">
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt1.gif"/>
                <div>
                    <p>Balloon</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt2.gif"/>
                <div>
                    <p>Feeling</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt3.gif"/>
                <div>
                    <p>Elephant</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt4.gif"/>
                <div>
                    <p>Stamps</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt5.gif"/>
                <div>
                    <p>Monogram</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
        <li>
            <a href="#" class="item">
                <img src="../../../img/shirt6.gif"/>
                <div>
                    <p>Rolling</p>
                    <p>Price:$25</p>
                </div>
            </a>
        </li>
    </ul>
    <!--結束 第一步    拖動區設置-->
    
    <!--開始 第三步 設置放置區table及區域-->
    <div class="cart">
        <h1>Shopping Cart</h1>
        <div style="background:#fff">
        <table id="cartcontent">
            <thead>
                <!--<tr>
                    <th field="name" width=140>Name</th>
                    <th field="quantity" width=60 align="right">Quantity</th>
                    <th field="price" width=60 align="right">Price</th>
                </tr>-->
            </thead>
        </table>
        </div>
        <p class="total">Total: $0</p>
        <h2>Drop here to add to cart</h2>
    </div>
    <!--結束 第三步 設置放置區table及區域-->
</body>
</html>

 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 代碼: 1 public static void dropDownList(string[] datas, string filePath) 2 { 3 HSSFWorkbook workbook = new HSSFWorkbook(); 4 ISheet sheet = workbook.Cre ...
  • 由於項目(asp.net MVC)需要做一個附件上傳的功能,使用的是jQuery的Uploadify插件的2.1.0版本,上傳文件到自己項目指定的文件夾下麵。做完之後,在谷歌上測試是正確的,在火狐上報Http 302的錯誤,自己也找了很多資料去看,也試了試,都不行,最後回本溯源,看302的錯誤解釋。 ...
  • 傳送門: "裝逼是學習的動力2 HTML5 Web應用之HTML5+CSS" 面向的對象: 之前是做winform二次開發的,對於web應用一竅不通,然後這幾天就在網上各種浪。大概瞭解了一下行情, `css3 javascript c python java php ctrl+w` 傳送高階練級區! ...
  • 個人網站地址:nee32.com 一、T4模板內容簡介 為了更好地學習T4模板,我們安裝一個插件tangible T4 Editor 在使用了EF生成實體類後,我們會發現一個.tt尾碼的文件,它就是T4模板,直接打開 它的內容如下圖: 就是這一個模板,生成了我們需要的類,省去了我們手寫的麻煩,提高了 ...
  • 個人以為是為了提高CPU利用率。線程給操作系統帶來的創建維護和管理負擔要輕。因為與線程相關的信息比較少,交情的負擔意味著線程的代價或開銷比較少。當處理器除一個進程並激活另一個進程時,就要發生上下文切換。為了發生上下文切換,操作系統必須啟動和重新啟動每個進程所需的信息。這就意味著必須保存描述進程存在狀 ...
  • ...
  • ...
  • 1.Yeoman? yeoman是一個自動化腳手架工具。它提供很多generator,generator相當於VisualStudio的模板,用來初始化項目。更多的就不多說了,寫一遍都寫不完,自己看吧。 http://yeoman.io/ 2.安裝 yeoman 安裝yeoman之前你需要先安裝np ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...