2017-01-02 2 views
0

Мой код, как:Сброс операции между событиями

//*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 numero, numStr="" и totalDisplay="24+".
  • Четвертый щелчок 9: numStr=9, totalDisplay="24+9".
  • Пятый щелчок =: numStr converted into a type number and push into the array numero, numStr="", он делает операцию и totalDisplay="24+9=33"

  • (Проблема) Шестой щелчок 7: numStr="97", "totalDisplay="24+9=337". Как начать новую вторую операцию, когда она будет первой. Итак, после пятого щелчка, который производит и отображает первую операцию, все переменные установлены в 0 или пустые строки «»; и с шестым щелчком numStr="7" и totalDisplay="7".

+0

Это недопустимый JavaScript. –

+0

Вы можете сбросить его нажатием кнопки 'numStr = ''; total = 0; 'перед тем, как делать что-либо. – Jai

ответ

0

Сбросить переменные в начале обработчика кликов.

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

0

Попробуйте сбросить глобальные переменные внутри события щелчка.

Надеется, что это помогает ...

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; 
}) 
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;} 
    //.... 
}) 
Смежные вопросы