我玩弄這個JavaScript車是非常漂亮: https://github.com/gabrieleromanato/jQuery-sessionStorage-shopping-cart如何檢查,如果產品已經在車,而不是重複它添加到購物車,當點擊(JavaScript的localStorage的車)
它運作良好除了在添加到購物車時不知道如何防止產品重複。
我是JS的新手,所以對別人來說顯而易見的東西不會對我有用。
我不知道在哪裏做出準確的修改,下面是一些可疑地區看:
// Adds items to the shopping cart
handleAddToCartForm: function() {
var self = this;
self.$formAddToCart.each(function() {
var $form = $(this);
var $product = $form.parent();
var price = self._convertString($product.data("price"));
var name = $product.data("name");
var image = $product.data("image");
var url = $product.data("url");
$form.on("submit", function() {
var qty = self._convertString($form.find(".qty").val());
var subTotal = qty * price;
var total = self._convertString(self.storage.getItem(self.total));
var sTotal = total + subTotal;
self.storage.setItem(self.total, sTotal);
self._addToCart({
product: name,
image: image,
url: url,
price: price,
qty: qty
});
var shipping = self._convertString(self.storage.getItem(self.shippingRates));
var shippingRates = self._calculateShipping(qty);
var totalShipping = shipping + shippingRates;
self.storage.setItem(self.shippingRates, totalShipping);
});
});
},
/* Add an object to the cart as a JSON string
* @param values Object the object to be added to the cart
* @returns void
*/
_addToCart: function(values) {
var cart = this.storage.getItem(this.cartName);
var cartObject = this._toJSONObject(cart);
var cartCopy = cartObject;
var items = cartCopy.items;
items.push(values);
this.storage.setItem(this.cartName, this._toJSONString(cartCopy));
},
我已經修改了原代碼,包括產品形象和URL,但是這是它。
我不太瞭解會話和對象,所以希望能夠學習一點,如果有人能夠幫助。
任何幫助將不勝感激。
乾杯
當購物車中有物品時,購物車HTML是什麼樣的?項目行是否有某種與產品相關的屬性? – Craig
等等,所以你不想讓我一次購買兩件同樣的東西?我必須退房,回去,並再次退房?看起來像一個不好的用戶體驗。你可能想要修改_addToCart,我不完全確定如何構造所有東西,所以我不知道你需要如何檢查...... console.log(項目)給你什麼? – Gerrit0
爲什麼不通過「物品」加入購物車並查看產品名稱是否存在? – Vinny