jQuery EasyUIチュートリアルを使用してドラッグアンドドロップのカートを作成
7309 ワード
Webアプリケーションを利用して簡単なドラッグアンドドロップを簡単に実現できれば、jQuery EasyUIを使用して、Webアプリケーションで簡単にドラッグアンドドロップ機能を実現できる特別なものを知っているに違いありません.
このチュートリアルでは、ユーザーが購入したい商品をカートにドラッグ&ドロップできるページを作成する方法を説明します.カートの中の品物と価格が更新されます.
プレゼンテーションの表示
ページに商品を表示します.
<
ul
class
=
"products"
>
<
li
>
<
a
href
=
"#"
class
=
"item"
>
<
img
src
=
"images/shirt1.gif"
>
<
div
>
<
p
>Balloon</
p
>
<
p
>Price:$25</
p
>
</
div
>
</
a
>
</
li
>
<
li
>
<
a
href
=
"#"
class
=
"item"
>
<
img
src
=
"images/shirt2.gif"
>
<
div
>
<
p
>Feeling</
p
>
<
p
>Price:$25</
p
>
</
div
>
</
a
>
</
li
>
<!-- other products -->
</
ul
>
上記のコードで見たように、商品を表示するためにli要素が含まれているul要素を追加しました.各商品の名前と価格属性はp要素に含まれています.
カートの作成:
<
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: $0</
p
>
<
h2
>Drop here to add to cart</
h2
>
</
div
>
私たちはデータグリッドを使ってカートの品物を表示します.
コピーした商品をドラッグ:
$(
'.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'
;
}
});
ドラッグ可能なプロパティ「proxy」を「clone」に設定すると、要素をドラッグするとコピーされます.
カートに選択したアイテムを配置します.
$(
'.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++){
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);
}
この商品を置くと、まず商品の名前と価格を得て、「addProduct」関数を呼び出してカートを更新します.
EasyUIのダウンロード例:easyui-shopping-demo.zip
興味のある方はjQuery EasyUIに関する記事をクリックしてご覧ください!