Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “_Javascript_Return Value_Negative Number - Fatal编程技术网

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之外的所有红利点数放入一个统计数据中,然后在另一个统计数据中按CTRL键,则红利值将变为负值,此时*应在0处停止

控制:

左键单击=分配1分 CTRL左键单击=分配5分 右键单击=收回1点 CTRL右键单击=收回5点 JavaScript:


在对其进行任何调整之前,您似乎正在检查奖金的现有价值。因此,如果奖金是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; } }