jEasyUI mencipta troli beli-belah drag-and-drop
Jika anda hanya boleh melaksanakan seret dan lepas melalui apl web anda, anda tahu anda sedang menikmati sesuatu yang istimewa. Dengan jQuery EasyUI, kami hanya boleh melaksanakan fungsi drag-and-drop dalam aplikasi web.
Dalam tutorial ini, kami akan menunjukkan kepada anda cara membuat halaman troli beli-belah yang membolehkan pengguna menyeret dan meletakkan item yang mereka ingin beli. Item dan harga dalam bakul beli-belah akan dikemas kini.
Paparkan produk pada halaman
<ul class="products"> <li> <a href="#" class="item"> <img src="../style/images/shirt1.gif"/> <div> <p>Balloon</p> <p>Price:</p> </div> </a> </li> <li> <a href="#" class="item"> <img src="images/shirt2.gif"/> <div> <p>Feeling</p> <p>Price:</p> </div> </a> </li> <!-- other products --> </ul>
Seperti yang anda lihat kod di atas, kami menambah elemen <ul> . Semua produk mempunyai atribut nama dan harga, yang terkandung dalam elemen <p>
Buat Troli Beli-belah
<div class="cart"> <h1>Shopping Cart</h1> <table id="cartcontent" style="width:300px;height:auto;"> <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> <p class="total">Total:$('.item').draggable({ revert:true, proxy:'clone', onStartDrag:function(){ $(this).draggable('options').cursor = 'not-allowed'; $(this).draggable('proxy').css('z-index',10); }, onStopDrag:function(){ $(this).draggable('options').cursor='move'; } });</p> <h2>Drop here to add to cart</h2> </div>
Kami menggunakan grid data untuk memaparkan item dalam troli beli-belah.
Seret item klon
$('.cart').droppable({ onDragEnter:function(e,source){ $(source).draggable('options').cursor='auto'; }, onDragLeave:function(e,source){ $(source).draggable('options').cursor='not-allowed'; }, 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])); } }); var data = {"total":0,"rows":[]}; var totalCost = 0; 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); }
Sila ambil perhatian bahawa kami menetapkan nilai atribut boleh seret daripada 'proksi' kepada 'klon', jadi elemen boleh seret akan diklon.
Letakkan produk terpilih ke dalam troli beli-belah
rrreeeSetiap kali produk diletakkan, kami mula-mula mendapat nama produk dan harga, dan kemudian memanggil fungsi 'addProduct' untuk mengemas kini bakul beli-belah.
Muat turun contoh jQuery EasyUI
jeasyui-dd-shopping.zip