@freeman0204

Как оптимизировать данный калькулятор?

Есть несколько select. При выборе которых в отдельном блоке считается цена путем сложения через .change(). Изначально нужно вывести сумму что я и делаю, потом пишут такой же скрипт только через .change. И дальше копирую с каждого select текущее выбранное значение в pop-up окно. Все это работает. Но как оптимизировать код? Мне кажется он излишним и не совсем правильным.

//Выводим что бы было видно изначально сумму
    var sum = 0;
    $('.call_calculator select :selected').each(function () {
        sum += Number($(this).val());
    });
    $(".calc_result .price, #text-popup-2 .price").html(sum + ' р.');

    //Сумма при выбора option
    $('.call_calculator select').change(function () {
        var sum = 0;
        $('.call_calculator select :selected').each(function () {
            sum += Number($(this).val());
        });
        $(".calc_result .price, #text-popup-2 .price").html(sum + ' р.');
    });

    // Вывожу скопированные данные с select что бы их сразу было видно в pop-up
    $('.call_calculator select.v1 :selected').each(function () {
        text = $(this).text();
        $(".wrap_box_info .v1").html(text);
    });
    $('.call_calculator select.v2 :selected').each(function () {
        text = $(this).text();
        $(".wrap_box_info .v2").html(text);
    });
    $('.call_calculator select.v3 :selected').each(function () {
        text = $(this).text();
        $(".wrap_box_info .v3").html(text);
    });
    $('.call_calculator select.v4 :selected').each(function () {
        text = $(this).text();
        $(".wrap_box_info .v4").html(text);
    });

и т.д.
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы