@OculusDaemon

Как переменные из одной функции и использовать в другой?

Подскажите пожалуйста, как переменные delivery и number использовать в другой функции?
https://codepen.io/OculusDaemon/pen/OOrXqW?editors=1010
5a20844ff0d03881796944.png
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
$(document).ready(function(){
    var delivery, number;
    $('#delivery input:checked').change(function(){
        delivery = $(this).val();    
    });
 
    $('#number').change(function(){
        number = $(this).val();
    });
    
    $('#number-of-pairs').change(function(){
        let pairs = $(this).val();
        let full_price = (parseInt(delivery) + parseInt(pairs)) * parseInt(number);
        $('#price').text(full_price);
    });
 });


UPD. Решение именно задачи:
https://jsfiddle.net/m9e54a9w/
var $pairs = $('#number-of-pairs')
    , $number = $('#number')
    , $price = $('#price')
;

function showPrice(){        
    var $delivery = $('#delivery input:checked')
        , number = parseInt( $number.val() || 1 )
        , pairs = parseInt($pairs.val())
        , delivery = parseInt($delivery.val() || 0)
    ;
    $price.text(pairs * number + delivery);
}

$('#number-of-pairs, #number, #delivery input').change(showPrice);
$('#number').on('keyup', showPrice);
showPrice();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@s-jet
Не работало у вас потому что область видимости у let ограничивается блоком в котором она находится.
Нужно так: https://jsfiddle.net/5pdbsst7/1/
Но желательно не нули присваивать в качестве дефолтных, а сразу брать откуда-то
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы