0

さて、ストアで設定された単一の製品を介して販売されている写真のサムネイルのグリッドがあります。その製品には、小さいサイズと大きいサイズの2つのサイズがあります。ラージには、選択時に価格を上げる修飾子があります。

私はJSを使用して、ユーザーが選択したサムネイルの1つに修飾子グループを削除して複製し、ページ上の単一の製品に効果的に変換しています。

私の問題は、モディファイアを削除して複製すると、価格が最後の製品がカートに追加されたときに選択されたものと同じままであるということです。

だからそして例:

ユーザーは、大きな修飾子(+ $ 20)が選択されたthummb#1を選択し、それをカート(AJAX)に追加します。次に、彼女がthumb#5を選択すると、モディファイアは小さい値に戻されますが、価格は大きい値を反映しています。

これはすべてページをリロードせずにJS経由で行われるため、store_product_priceをリセットするにはどうすればよいですか?

ajax : function(){
if( !$( '#product_form' ).size() ) return;

$( '#product_form' ).submit( function(){
    $( '.card .add_to_cart' ).val( 'Processing...' );
    var url = $( this ).attr( 'action' );
    var data = $( this ).serialize();
    $.post( url, data, function(){
        $( '#sidebar-cart' ).load( '/store/cart/' );
        $( '.card .add_to_cart' ).val( 'Add to Cart' );
        $( '.selected' ).removeClass( 'selected' );
        $( '.not-selected' ).removeClass( 'not-selected' );
   } );
        return false;
} );
},
4

1 に答える 1

1

「修飾子を削除して複製する」とはどういう意味か完全にはわかりません。サムネイルごとに新しい小/大ドロップダウンを作成していますか?その場合、フォームでどちらを送信するかをどのようにして知ることができますか?

サムネイルごとに新しい製品フォームを作成し、JSを使用して必要に応じて修飾子を表示/非表示にする方が簡単な場合があります。

いずれにせよ、現状を維持したい場合はthemes/third_party/store/store.js、クラスがどのように実装されているかを確認できます(言及していませんがstore_product_price、クラスはすでに価格に追加されていると思います)。store_product_priceを設定$debug = 1するindex.phpと、デフォルトでJavaScriptの縮小されていないバージョンが読み込まれるため、ステップスルーしてどこでスタックしているかを簡単に確認できます。

于 2012-11-12T22:55:45.513 に答える