我有一些代码,一位绅士很友好地与我合作。他做得非常出色,让它按原样运行。但我注意到一个我无法解决的小问题。不幸的是,这方面的技能水平略高于我的能力。因此,我们将不胜感激任何帮助。
它的功能演示位于 >> http://jsfiddle.net/5fM9p/
问题是,当单击“删除”时,我需要它来重新启用最初在添加时禁用的选择。
我有一些代码,一位绅士很友好地与我合作。他做得非常出色,让它按原样运行。但我注意到一个我无法解决的小问题。不幸的是,这方面的技能水平略高于我的能力。因此,我们将不胜感激任何帮助。
它的功能演示位于 >> http://jsfiddle.net/5fM9p/
问题是,当单击“删除”时,我需要它来重新启用最初在添加时禁用的选择。
像下面这样替换您的删除功能将为您做到这一点。
$(".remove_from_cart").live("click", function(){
var item=$(this);
var itemId=item.parent().find(".product").attr("id");
item.parent().remove();
var disabled=$(".added").find("#"+itemId).parent();
disabled.find("select").removeAttr("disabled");
disabled.find("p").remove();
disabled.append('<a class="add_to_cart" href="#add">Add To Cart</a>');
});
但我发现您的 HTML 标记存在问题。您有多个具有相同 ID 的元素。这是不好的。ID 应该是唯一的。你可能应该解决这个问题。
另一件事是,一旦您重新启用链接添加到购物车(单击删除购物车时),它将无法工作,因为您之前绑定了它。所以你需要改变你的绑定代码来使用live
这样的方法
$(".add_to_cart").live("click",function (e) {
//Your remaining code goes here
});
工作样本:http: //jsfiddle.net/5fM9p/23/
考虑这个小提琴:http: //jsfiddle.net/6V52G/
使用可用于识别哪些元素组属于哪个产品的属性,并删除整个 setupForm 函数,从一开始就将它们放在 HTML 中。
尝试这个:
$(".remove_from_cart").live("click", function(){
var id = $(this).parent().find("select").attr("id");
$(this).parent().remove();
$("#" + id).parent().find("select").attr("disabled", "");
$("#" + id).parent().find("p").remove();
$("#" + id).parent().append('<a class="add_to_cart" href="#add">Add To Cart</a>');
});