2014-02-12 67 views
0

我正在開發一個SimpleCart項目,該項目需要許多選項來改變項目的價格。每個選項都會添加一定數量的項目的基本價格。例如:SimpleCart js - 更改選項選擇的價格

項基本價格= $ 10

下拉菜單1:

  • 選項1,2,3加$ 0
  • 選項4,5,6加$ 1
  • 選項7 ,8,9加$ 2

...等等多個下拉菜單中的多個項目與不同的基價。

的simplecartjs.org文檔建議一個beforeAdd事件像這樣:

simpleCart.bind('beforeAdd' , function(item){ 
if(item.get('size') == 'Small'){ 
item.price(10); 
} else if(item.get('size') == 'Large'){ 
item.price(12); 
} 
}); 

你將如何使用與此類似添加特定量的基本價格,而不是定義每個選項的一組價格?

下面是一些簡單的HTML代碼示例(我的項目實際上有一個下拉選項70+):

<div class="simpleCart_shelfItem"> 
<h2 class="item_name">item</h2> 
<select class="item_size"> 
<option value="small">small</option> 
<option value="medium">medium</option> 
<option value="large">large</option> 
</select> 
<select class="item_length"> 
<option value="short">short</option> 
<option value="long">long</option> 
</select> 
<input value="1" class="item_Quantity" type="text"> 
<span class="item_price">$10</span> 
<a class="item_add" href="javascript:;">add to cart</a></p> 
</div> 

回答

0

我可能會去的方式所提供,不過它的文檔相同將基本價格添加爲可用於增加額外成本的變量。在函數內部應用變量將使其保持本地化,所以如果您在另一個函數中有基本價格,它將不會影響代碼。

*注意我沒有測試它,只是想到我會如何去做。

simpleCart.bind('beforeAdd', function (item) { var basePrice = 10; if (item.get('size') == 'Small') { item.price(basePrice + 2); } else if (item.get('size') == 'Large') { item.price(basePrice + 2); } else if (item.get('size') == 'Long' && item.get('otherProperty')) { item.price(basePrice + 9); } });

+0

這是不是我可以用我的每一個項目引用,唯一的區別是底價? –

+0

您可以添加一個屬性,然後在您的購物車的CSS中,您可以使屬性類不顯示。 '{attr:「variable1」,label:「VariableName」} //此頂層腳本進入simplecart設置 .item-variable1 {display:none;}' –