1

最新バージョンのOpenCartを実行しているproduct.tplには、下部のjavascriptに次のコード行があります。

$('#cart-total').html(json['total']);

この行は、ページをリロードせずにカートの合計を更新したため、$('#cart-total').html(json['total']);出力<span id="cart-total">6 item(s) - $693.50</span>

ただし、cart.tplモジュールとcart.php言語ファイルをカスタマイズして、カートの出力を少し異なる方法で表示し、次のように出力できるようにしました。

<span id="cart-total">
     <div class="mini-cart-items">6 Items</div>
     <div class="mini-cart-total">Your total is $693.50</div>
</span>

したがって、何らかの理由で$('#cart-total').html(json['total']);、カートの合計を更新すると、カート内にある2つのdivが削除され、設定したフォーマットなしで情報が表示されます。

情報が削除されないようにJavaScriptを更新することは可能ですか?

コンテキストに必要な場合は、より多くのコードを提供できます。

EDTI:これは次の$('#cart-total').html(json['total']);範囲内にあるjavascriptセクション全体です。

if (json['success']) {
                $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

                $('.success').fadeIn('slow');

                $('#cart-total').html(json['total']);

                $('html, body').animate({ scrollTop: 0 }, 'slow'); 
            }

現在のコード、以下に説明する編集:

        if (json['success']) {
            $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

            $('.success').fadeIn('slow');

            console.log(json['total']);
            var output = $(json['total']).text().split('-');
            $('.mini-cart-items').html(output[0]);
            $('.mini-cart-total').html('Your total is ' + output[1]);

            $('html, body').animate({ scrollTop: 0 }, 'slow'); 
        }       
4

4 に答える 4

2

json['total']数値のみが含まれている場合は、次のことを試すことができます。

$('#cart-total .mini-cart-total').empty().html('Your total is $' + json['total']);

あなたの編集によると:

var output = $(json['total']).text().split('-');

$('.mini-cart-items').html(output[0]);
$('.mini-cart-total').html('Your total is ' + output[1]);

デモ

于 2012-05-07T10:32:23.490 に答える
2

私も問題を抱えており、問題を解決する方法を見つけました。

作業方法json['total']私はcatalog/controller / checkout/cart.phpにあります

$json['total'] = sprintf($this->language->get('text_items') .......

しかし、それほど重要ではありません。「text_items」は2か所に配置されています

catalog/language/russian/module/cart.php

catalog/language/russian/checkout/cart.php

それは非常に興味深いです、最初はモジュールファイルの使用、jsonでのチェックアウトファイルの使用

これが私の「text_items」です。2つの言語ファイルに配置しました

// Text
$_['text_items'] = 'In cart: <div class="header-product">%s product</div> summ %s';
于 2012-08-10T21:53:21.630 に答える
0

上記はうまくいきます、まあuはいつでもあなたのdivにIDを与えることができます

<div id="mini-cart-total" class="mini-cart-total">Your total is $574.00</div>

スクリプト内:

$('#mini-cart-total').html(json['total']);

1日の終わりに、$('#id')。html(str)は、ID内のすべてのhtmlを渡したものに置き換えます。

于 2012-05-07T10:37:14.313 に答える
0

これで解決しました

setTimeout(function(){
  $('#cart-total').html('Your total is $' + json['total']); 
}, 100);

遅延を追加するだけ

于 2018-06-14T19:39:51.753 に答える