这段代码有什么问题:
function calculateAddOnPrice() {
if (totalPrice <= 47) {
var polybags= $('#polybags').is(':checked') ? "0.5" : "0";
console.log(polybags);
}
else if (totalPrice >= 48 && totalPrice < 71) {
var polybags = $('#polybags').is(':checked') ? "0.35" : "0";
console.log(polybags);
}
所以我将输出记录到控制台。
当totalPrice小于47并且我点击ON的复选框时,控制台如下所示:
0.5
当我解开OFF时,我得到了这个:
0
总价格是&gt; 48,我勾选方框,我得到输出:
0.5
0.35
如果我取消它,我会得到:
0
0
我不知道为什么它给我双重价值,有人可以帮助我吗? :)
UPDATE -----
完整的jQuery:https://pastebin.com/DYV92cj3
此部分的HTML:
<div class="checkbox">
<label><input type="checkbox" id="polybags">I WOULD LIKE POLY BAGGING</label>
</div>
答案 0 :(得分:0)
当您开始在.size_control
上输入内容时,您正在执行整个代码块。这意味着每次输入大小控制元素时,函数都会附加到复选框的更改事件中。三个输入意味着更改事件被堆叠三次,因此您将获得三个函数调用。
我们将不必要的代码放在输入事件之外,并且可能将它们放在函数中以实现更清晰的方法
$(document).ready(function () {
$(document).on('input', '.size_control', function(event) { sizeControlFunc(); });
setChkBxEvents();
});