jQuery计算器;减法问题

时间:2016-01-05 12:19:53

标签: javascript jquery

我正在为课堂做一个基本的计算器(比如谷歌,当你输入"计算器"在浏览器中)时,我目前陷入了减法操作。简要说明:当我点击#buttonless时,变量" num1"存储,然后"屏幕"归零。然后,当我点击#buttonequal,变量" num2"也存储,从那里jQuery减去两个数字。

问题是,当我按照结果给出另一个减法时,而不是减去计算器对这两个数字求和。

$("#buttonless").click(function(){
    var num1, num2, resultado;
    num1=parseFloat($("#screen").val());
    $("#screen").val(0);
    $("#buttonequal").click(function(){
        num2=parseFloat($("#screen").val());
        resultado=num1-num2;
        $("#screen").val(resultado);
        num1=0;
        num2=0;
    });
});

我在代码的底部发出警告,发现在第二次减法时(问题出现的地方),程序减去0,这似乎是" num1"当时,到#34; num2",然后" num1"取而代之的是我之前给出的结果,因此有点"添加"数字。

例如:我执行操作3-1,并给出2.但是当我尝试将1减去2(2-1)时,我给出了3而不是1。

任何帮助将不胜感激。提前谢谢。

3 个答案:

答案 0 :(得分:2)

您在另一个内部使用了一个事件处理程序。试试这个:

var num1, num2, resultado;
$("#buttonless").click(function(){
        num1=parseFloat($("#screen").val());
        $("#screen").val(0);
});
$("#buttonequal").click(function(){
        num2=parseFloat($("#screen").val());
        resultado=num1-num2;
        $("#screen").val(resultado);
        num1=0;
        num2=0;
  });

如果U可以提供演示,那么理解问题会更容易。

答案 1 :(得分:1)

当您点击#buttonless时,您为#buttonequal创建了一个新的点击处理程序。所以第二次,点击处理程序将被调用两次,一次使用他第一次调用时的num1值(然后将结果放入#screen),第二次使用新的{{1 value(和第一个减法的结果,而不是你输入的值)。

使用num1,或仅设置一次点击处理程序(即,不在第一个单击处理程序中)。在后一种情况下,您将更改.once变量的范围(并存储当前操作,因为您可能不仅仅是减法,我猜)。

答案 2 :(得分:0)

感谢所有人的反馈!我设法最终以这种方式做到了:

$("#buttonless").click(function(){
    resta=1;
    num1=parseFloat($("#screen").val());
    $("#screen").val(0);
});

$("#buttonequal").click(function(){
    num2=parseFloat($("#screen").val());
    if(suma==1){
        resultado=num1+num2;
    }
    else if(resta==1){
        resultado=num1-num2;
    }
    else if(multiplicacion==1){
        resultado=num1*num2
    }
    else if(division==1){
        resultado=num1/num2;
    }
    $("#screen").val(resultado);
});