gpt4 book ai didi

javascript - 如果部分未执行

转载 作者:行者123 更新时间:2023-11-30 16:55:16 25 4
gpt4 key购买 nike

$(document).ready(function () {
var t=true;
var f=false;
var cheap;
$('.day1').on('change', function (e) {
if($(this).val() == "Saturday"){
cheap = true;
}
else{
cheap=false;
}
});
if(cheap==true){
$('.pricing1').change(function () {
var price = parseFloat($('.total').data('base-price')) || 0;
$('.pricing1').each(function (i, el) {
price += parseFloat($('option:selected', el).data('cheap'));
$('.total').val('$' + price.toFixed(2));
});
//console.log('cheap',cheap)
});
}
else{
$('.pricing').change(function () {
var price = parseFloat($('.total').data('base-price')) || 0;
$('.pricing').each(function (i, el) {
price += parseFloat($('option:selected', el).data('price'));
$('.total').val('$' + price.toFixed(2));
});
console.log('cheap',cheap)
});
}

});

当选择星期六时,控制台读数以便宜的方式返回 true。但 if 部分未执行。每次只执行其他部分。从逻辑上讲,如果 cheap 为真,它应该执行 if 部分。并且控制台将 cheap 值显示为 true,因此 cheap 的值为 true。这很奇怪!

最佳答案

您正在准备好在 dom 上注册事件处理程序,此时 cheap 的值为 false 所以 if 条件不会得到满足,所以只有更改else 部分中的处理程序将被注册。

$(document).ready(function () {
var t = true;
var f = false;
var cheap;
$('.day1').on('change', function (e) {
if ($(this).val() == "Saturday") {
cheap = true;
} else {
cheap = false;
}
});
$('.pricing1').change(function () {
if (cheap == true) {
var price = parseFloat($('.total').data('base-price')) || 0;
$('.pricing1').each(function (i, el) {
price += parseFloat($('option:selected', el).data('cheap'));
$('.total').val('$' + price.toFixed(2));
});
//console.log('cheap',cheap)
} else {
var price = parseFloat($('.total').data('base-price')) || 0;
$('.pricing').each(function (i, el) {
price += parseFloat($('option:selected', el).data('price'));
$('.total').val('$' + price.toFixed(2));
});
console.log('cheap', cheap)
}
});

});

您可以将代码简化为类似

$(document).ready(function () {
var t = true;
var f = false;
var cheap;
$('.day1').on('change', function (e) {
if ($(this).val() == "Saturday") {
cheap = true;
} else {
cheap = false;
}
});
$('.pricing1').change(function () {
var data = cheap ? 'cheap' : 'price';
var price = parseFloat($('.total').data('base-price')) || 0;
$('.pricing1').each(function (i, el) {
price += parseFloat($('option:selected', el).data(data)) || 0;
});
$('.total').val('$' + price.toFixed(2));
});

});

关于javascript - 如果部分未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29815895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com