кнопки пользовательского интерфейса jQuery и некоторые расчеты


У меня есть список чекбоксов стиле с помощью jQuery пользовательского интерфейса, как кнопки. У каждого есть данные-цена attributem содержащая цены в таком формате: дата-цена="40.00", данные-цена="25.00" и т. д.

Когда пользователь "проверяет" коробку, я добавляю его данные-цена в totalPrice ВАР. Каждый раз, когда другое окно кнопки, это собственные данные-цена добавляется к общей сумме. Если пользователь снимает в boxm, это значение отнимается. Я пытался предотвратить значение от 0.00 а также.

Я потом выводить totalPrice в div - totalBox.

<script type="text/javascript">
    totalPrice = 0.00;
    $(function() {
        var totalBox = $('#totalBox');

        $( ".styled" ).button().bind('click', function() {
            var packagePrice = $(this).attr('data-price');
            var cost = parseFloat(packagePrice);

            if(totalPrice>=0.00) {
                if($(this).is(':checked')) {
                    totalPrice += cost;
                } else {
                    totalPrice -= cost;
                }
            }

            totalBox.html('<span class="total">Total:</span>
                           <span class="price">&pound;' 
                           + totalPrice.toFixed(2) + '</span>'
            );
        });
    });
</script>

Я представляю здесь некоторые оптимизации - какие мысли?



319
2
задан 28 июня 2011 в 11:06 Источник Поделиться
Комментарии
1 ответ

При работе с цен, то на мой взгляд это обычно хорошая идея, чтобы избежать плавающей точкой. Двоичные ошибки округления могут легко ударить неожиданно в любое время.

Вместо этого я предлагаю для работы с целыми числами (так копейки) внутренне, и просто добавить десятичную точку для выхода.

Другие несвязанные мысли: я бы переместить жестко HTML в скрипт в документ HTML и писать только в цене.

2
ответ дан 28 июня 2011 в 12:06 Источник Поделиться