Javascript “
见: 如何复制我的*问题: 如果您将除1之外的所有红利点数放入一个统计数据中,然后在另一个统计数据中按CTRL键,则红利值将变为负值,此时*应在0处停止 控制: 左键单击=分配1分 CTRL左键单击=分配5分 右键单击=收回1点 CTRL右键单击=收回5点 JavaScript:Javascript “,javascript,return-value,negative-number,Javascript,Return Value,Negative Number,见: 如何复制我的*问题: 如果您将除1之外的所有红利点数放入一个统计数据中,然后在另一个统计数据中按CTRL键,则红利值将变为负值,此时*应在0处停止 控制: 左键单击=分配1分 CTRL左键单击=分配5分 右键单击=收回1点 CTRL右键单击=收回5点 JavaScript: 在对其进行任何调整之前,您似乎正在检查奖金的现有价值。因此,如果奖金是1,并且您试图从中删除5,那么检查将显示值为1,并继续进行数学运算,将值更改为-4 我的猜测是,您需要应用数学,然后检查0,如果值
在对其进行任何调整之前,您似乎正在检查奖金的现有价值。因此,如果奖金是1,并且您试图从中删除5,那么检查将显示值为1,并继续进行数学运算,将值更改为-4
我的猜测是,您需要应用数学,然后检查0,如果值<0,则调整为0。您必须在转储方法中替换此值
if(BonusVal.value <= 0) return;
var newBonus = parseInt(BonusVal.value) - 4;
为此:
var newBonus = parseInt(BonusVal.value) - 4;
if(newBonus <= 0) return;
工作示例 您需要验证奖金是否为负值。。。像这样的更正
function add(character, stat) //Allocates "1" with left-click//
{
var txtNumber = document.getElementById(character[stat]);
var newNumber = parseInt(txtNumber.value) + 1;
if(newNumber > character.Limits[stat].max) return;
var BonusVal = document.getElementById(character.Bonus);
if(BonusVal.value <= 0) return;
var newBonus = parseInt(BonusVal.value) - 1;
if( newBonus < 0 ){ //try if is negative
newBonus = 0; //and fix it
newNumber = +(BonusVal.value);
}
BonusVal.value = newBonus;
txtNumber.value = newNumber;
}
function dump(e, character, stat) //Allocates "5" with CTRL+right-click//
{
if (e.ctrlKey == 1 && e.which == 1) {
debugger;
console.log('met');
var txtNumber = document.getElementById(character[stat]);
var newNumber = parseInt(txtNumber.value) + 4;
if(newNumber > character.Limits[stat].max) return;
var BonusVal = document.getElementById(character.Bonus);
if(BonusVal.value <= 0) return;
var newBonus = parseInt(BonusVal.value) - 4;
if( newBonus < 0 ){ //try if is negative
newBonus = 0; //and fix it
newNumber = +(BonusVal.value);
}
BonusVal.value = newBonus;
txtNumber.value = newNumber;
}
}
仅供参考,您缺少parseInt调用中的最后一个参数。这会导致愚蠢的结果,有什么意义?值为1,正,然后减去4。你的条件行得通,逻辑在这里失灵。。。如果奖金
function add(character, stat) //Allocates "1" with left-click//
{
var txtNumber = document.getElementById(character[stat]);
var newNumber = parseInt(txtNumber.value) + 1;
if(newNumber > character.Limits[stat].max) return;
var BonusVal = document.getElementById(character.Bonus);
if(BonusVal.value <= 0) return;
var newBonus = parseInt(BonusVal.value) - 1;
if( newBonus < 0 ){ //try if is negative
newBonus = 0; //and fix it
newNumber = +(BonusVal.value);
}
BonusVal.value = newBonus;
txtNumber.value = newNumber;
}
function dump(e, character, stat) //Allocates "5" with CTRL+right-click//
{
if (e.ctrlKey == 1 && e.which == 1) {
debugger;
console.log('met');
var txtNumber = document.getElementById(character[stat]);
var newNumber = parseInt(txtNumber.value) + 4;
if(newNumber > character.Limits[stat].max) return;
var BonusVal = document.getElementById(character.Bonus);
if(BonusVal.value <= 0) return;
var newBonus = parseInt(BonusVal.value) - 4;
if( newBonus < 0 ){ //try if is negative
newBonus = 0; //and fix it
newNumber = +(BonusVal.value);
}
BonusVal.value = newBonus;
txtNumber.value = newNumber;
}
}