私は紳士が私と一緒に働くのに十分親切だったいくつかのコードを持っています。彼はそれをそのまま機能させる素晴らしい仕事をしました。しかし、私は解決できない小さな問題に気づきました。残念ながら、このスキルレベルは私の能力をわずかに超えています。ですので、どんな援助もいただければ幸いです。
機能するデモは>> 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は一意である必要があります。おそらくそれを修正する必要があります。
もう1つのことは、[カートに追加]リンクを再度有効にすると(カートの削除をクリックすると)、以前にバインドしたために機能しないことです。live
したがって、このようなメソッドを使用するには、バインディングコードを変更する必要があります
$(".add_to_cart").live("click",function (e) {
//Your remaining code goes here
});
作業サンプル: http: //jsfiddle.net/5fM9p/23/
これを試して:
$(".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>');
});
このフィドルを考えてみましょう:http://jsfiddle.net/6V52G/
どの要素のグループがどの製品に属しているかを識別し、setupForm関数全体を削除するために使用できる属性を使用して、それらを最初からHTMLに入れます。