2015-10-20 2 views
0

Я новый javascript для изучения студента. В настоящее время мне сложно понять простую концепцию хранения переменной в моем проекте с калькулятором. Моя проблема в том, что при нажатии на оператор (+, -, /, *) я хочу сохранить первое значение в качестве переменной (первый пользовательский ввод). После того, как пользователь снова нажимает на цифры, экран дисплея очистится и отобразит вторую переменную (или второй пользовательский ввод). Затем, если нажата кнопка оператора или равна кнопке, она рассчитает две переменные (так что var + var2). Я использовал глобальную переменную для переменной1, но мне не удается назначить вторую переменную с пользовательским вводом после очистки элемента. У меня есть ощущение, что есть простой ответ на этот вопрос, но я хочу знать, что я принципиально делаю неправильно, поэтому я могу начать рассмотрение всех тем, которые мне нужно, чтобы снова накрыть. В любом случае любая помощь будет отличной! БлагодаряКалькулятор Javascript/JQuery, сохраняющий переменные

'http://codepen.io/kevk87/pen/EVoEaa` 
+0

просто любопытно; учителя начинают студентов с jquery, чтобы помочь им понять javascript? Я бы подумал, что они научили бы простому javascript, прежде чем переходить на jquery. – jnoreiga

+0

В настоящее время я в bootcamp, который больше ориентирован на UI/UX. Таким образом, с точки зрения обучения нам развития переднего плана, это скорее дополнение к программе по сравнению с другими bootcamps. Таким образом, структура программы немного затруднена, если вы совершенно не знакомы с javascript. Сначала нам нужно было изучить javascript/jquery на виртуальной фазе, используя treehouse или lynda (онлайн-обучение самостоятельно). Затем в первую неделю занятий нам сказали построить карусель. Поэтому, чтобы ответить на ваш вопрос, я считаю, что мы ожидали, что будем знать javascript перед сессией в классе. – Kevin

+0

ОК, это имеет смысл. Спасибо за объяснение. Удачи! – jnoreiga

ответ

1

Во-первых, у вас есть синтаксическая ошибка в вашем заявлении, из-за чего jQuery не выбирает правильный элемент. Я исправил это в моем фрагменте ниже.

Во-вторых, вам необходимо реализовать равный оператор, чтобы все это объединить. Между тем, чтобы решить вашу проблему и указать вам в правильном направлении, вы на самом деле не захватываете второй элемент. Каждый раз, когда пользователь нажимает на оператора, вы переназначаете значение, которое находится на экране, на «цифровую» переменную, затем очищая экран и назначая значение, которое находится на экране (это ясно, потому что вы просто очистили его), до «number2» ».

Один из способов обойти это - проверить и увидеть, имеет ли переменная 'number' значение, если это так, вы назначаете следующее значение переменной 'number2'. Вот фрагмент кода, который делает это.

$(".operator").on("click",function() { 
    if (number == null) { 
     number = $("#screen").html(); 
    } 
    else { 
     number2 = $("#screen").html(); 
     $("#screen").html(""); 
    } 
}); 
+0

Спасибо Sohrab за отзыв! Я думаю, что я запутался в реализации различных состояний, когда нужно назначить переменную. Поэтому, если я правильно понимаю это, как только пользователь нажимает на кнопку оператора, я проверяю, не назначена ли первая переменная. Если нет, назначьте первую переменную. Затем, как только пользователь нажимает на другую цифру, назначьте вторую переменную, а затем очистите экран? Я думаю, что я переусердствовал в этом процессе, который мне тяжело было окунуться ... В любом случае спасибо за помощь! – Kevin

1

Вы забыли селектор # на линии $("screen").html("");, JQuery не будет выбрать правильный элемент. Кроме того, вы еще не реализовали равный оператор.

$(".operator").on("click",function() { 
    number = $("#screen").html(); 
    $("screen").html(""); 
    number2 = $("#screen").html(); 
}); 
+0

Спасибо за отзыв Lam! Я думаю, что меня путают с калькулятором, с которым я работаю. Я пытался это сделать, если пользователь продолжает нажимать кнопку оператора после ввода двух цифр, он будет действовать как кнопка равенства (например, связать уравнение). Но я думаю, что сейчас переусердствую. Я должен просто получить основное уравнение, добавив сначала две переменные. – Kevin

Смежные вопросы