Javascript:从购物车中减去项目会导致负值
Javascript: Subtracting items from shopping cart result in negative value
我有一个购物车脚本,正在尝试修改。问题是,每当我试图从购物车中删除多个项目时,我都会得到一个负值。删除所有项目后,购物车永远不会归零。我可以很好地添加项目。
这是小提琴。
以下是此功能的代码片段。完整的代码是在小提琴,因为它更容易解释,通过向你展示我遇到的问题的演示。
function addToCart(id, container_id, corTitle, corPrice, credit_hrs) {
var amount = parseFloat(corPrice);
var hours = parseFloat(credit_hrs);
var remove = "<button type='"button'" class='"remove'"></button>";
var selected_product = "<div class='"item '">"
+ "<div class='"title'">"
+"<div class='"remove'"><button type='"button'" title='"remove from cart'" class='"remove-from-cart'" alt='"Remove Course'" ></button></div>"
+ corTitle
+ " for $" + corPrice
+ "</div>"
+ "<input name='"containerId'" value='"" + container_id
+ "'" type='"hidden'">" + "</div>";
$(selected_product).insertBefore("#subtotals");
register("add", amount, hours);
$(".remove-from-cart").click(function() {
$(this).parents(".item").slideUp("slow");
console.log(this);
register("subtract", amount, hours);
$(toId(id)).removeAttr("disabled").fadeTo("slow", 1);
$(this).parents(".item").remove();
});
}
问题似乎是,当单击删除按钮时,会多次调用附加到删除按钮的click
处理程序。register("subtract", amount, hours)
的重复调用导致总数为负数。我该怎么解决这个问题?
问题是,每次向购物车添加项目时,都会重新运行$(".remove-from-cart").click(...)
,因此所有现有的删除按钮都会得到一个额外的处理程序。
使用jQuery将HTML解析为一个jQuery封装的DOM结构,然后将其用作.remove-from-cart
选择器的上下文(如本文所示)。这样,.remove-from-cart
选择器将仅适用于您新添加的项目。
var selected_product = "<div class='"item '">" + ...;
// jQuery-wrapped DOM structure
var $prod = $(selected_product)
$prod.insertBefore("#subtotals");
register("add", amount, hours);
// use $prod as jQuery context argument,
// so `.remove-from-cart` only looks in this DOM tree
$(".remove-from-cart", $prod).click(function() {
...
});
相关文章:
- 添加到购物车和移除计数的产品丢失,而移除露天市场中的项目
- Javascript:从购物车中减去项目会导致负值
- Javascript window.open() 多次将项目添加到购物车
- 使用角度从ng重复,简单的购物车实现中添加和删除项目
- 使用 Redis 和 Rails 将多个项目添加到购物车
- AngularJS+simpleCart问题显示购物车内容,直到添加项目
- 如何创建可编辑的购物车项目
- 更新购物车并删除购物车中的多余项目
- 附加购物车,我如何折扣某些项目
- 查看购物车中的项目,购物车是一个对象数组
- 我试图找到一种方法,让人们通过链接向他们的蒸汽购物车添加多个项目
- 客户端购物车:在数组中添加两个具有相同描述的项目
- 删除购物车中的选定项目
- 贝宝添加到购物车多个项目的形式与折扣
- 防止在将项目提交到购物车时重新加载页面
- Codeigniter -通过jquery复选框添加多个项目到购物车
- 向购物车中添加一个项目
- 购物车中出现重复项目
- 根据窗体中的行数将项目添加到购物车
- 将购物车项目传输回 SAP SRM