重置事件之间的操作

时间:2017-01-02 10:46:54

标签: javascript jquery

我的代码就像:

//*Global variables*
var numStr="";
var symbol="";
var numero=[];
var total=0;
var totaldisplay="";
//...
//*Event*
$("button").click(function(){
   var key=$(this).html();
  // *if statements*
    if(/\d{1,}|\./.test(key)){
          numStr+=key;
          totalDisplay+=key;
                   }

    if(/÷|\+|-|×/.test(key)) {
          symbol=key;
          numero.push(parseFloat(numStr));
          numStr="";
          totalDisplay+=key;

          }
    if(/=/.test(key)){
         numero.push(parseFloat(numStr));
         numStr="";
         ....
         total= // *Operations*

         totalDisplay+="="+total;


}

  //....
  $("#display2").html(totalDisplay);

})

我想我在第一篇文章中没有正确说出问题。 它是一个计算器,用户点击该键,并在计算器的显示中累加。

示例:

  • 第一次点击2:numStr="2" and totalDisplay="2"
  • 第二次点击4:numStr="24" and totalDisplay="24"
  • 第三次点击+:symbol="+"numStr converted into a type number and pushed into the array numeronumStr=""totalDisplay="24+"
  • 第四次点击9:numStr=9totalDisplay="24+9"
  • 第五次点击=:numStr converted into a type number and push into the array numeronumStr="",进行操作并totalDisplay="24+9=33"

  • (问题)第六次点击7:numStr="97""totalDisplay="24+9=337"。 一旦超过第一个操作,我怎么能开始新的第二个操作。 因此,在第五次点击后,显示第一个操作,所有变量都设置为0或空字符串“”;并点击第六次 numStr="7"totalDisplay="7"

4 个答案:

答案 0 :(得分:0)

重置点击处理程序开头的变量。



$("button").click(function() {
  numStr = "";
  var key = $(this).html();
  //if statements *
  if (/\d{1,}|\./.test(key)) {
    numStr += key;
  }
  // ....
})




答案 1 :(得分:0)

尝试在点击事件中重置全局变量。

希望这会有所帮助......

答案 2 :(得分:0)

你应该做这样的事情 -

var numStr="";
var total=0;

$("button").click(function(){
   // Variable should always be defined at top of function definition.
   var key = $(this).html();

   // Early return, it's a good practise
   if(!(/\d{1,}|\./.test(key))){
       return;
   }

   numStr = key;
})

答案 3 :(得分:0)

试试这个

//*Global variables*
var numStr="";
var total=0;
//...
//*Event*
$("button").click(function(){
   var numStr = "";
   var key=$(this).html();
  // *if statements*
    if(/\d{1,}|\./.test(key)){
          numStr+=key;}
  //....
})