спасибо!
а что делает 10 для return parseInt(a, 10)? оно и без этих чисел всё работает
Необязательный параметр. Целое число, представляющее основание системы счисления для числа в указанной выше строке. Для избежания непонятностей при чтении кода и гарантии предсказуемого поведения всегда определяйте этот параметр. Различные реализации дадут разные результаты, если основание системы счисления не будет указано.
Спасибо за интерес к вопросу.
Ваш калькулятор с дизайном по примеру пока что реализовать сложно. Оставлю его до лучших времен…
Но если делать такую задачу, и разбить её по шагам (поэтапно реализовывать функционал такого калькулятора), то - делаю пока что первый шаг задачи - функцию для переноса значений из кнопок в поле для ввода input.
Сделала верстку свою для этой задачи (набросок, пока что без дизайна), потому что я пока не вижу другого способа переносить значения, кроме как присваивание value от input-а к input-у.
Вот что вышло - http://jsfiddle.net/LenaR/xj8x8xmd/
И не работает. И в консоли не выдает ошибок. И Jshint.com тоже не обнаруживает ошибок.
onekey.addEventListener('.click', result, false);
Здесь вы добавляете элементу onekey обработчик на событие .click, точка в начале лишняя.
onekey.value = document.querySelector('.first').value;
- В вашей HTML-разметке нет элемента с классом
first, толькоfirstN. - Здесь вы изменяете значение кнопки на то, что сейчас находится в
input-e, вы уверены что это то что вам нужно.
Почему вы не хотите пользоваться аргументом обработчика события. Функции обработчику при возникновении события передаётся аргумент-событие (event). Вот так:
function result (event)
{
//ваш код обработчика
}
С его помощью можно узнать на каком элементе произошло событие, и соответственно значение этого элемента (в вашем случае кнопки). Вот почитайте
Спасибо, исправила
хорошо, передаю аргумент в функцию- http://jsfiddle.net/LenaR/xj8x8xmd/4/
теперь выдает ошибку в консоли Cannot set property ‘value’ of undefined
Почему? , ведь есть свойство value у обеих интпутов
event.onekey.value = document.querySelector('.firstN').value;
У объекта event нет свойств onekey, twokey, …
Доступ к объекту на котором произошло событие можно получить через event.target.
Вот посмотрите что выводится в консоли при нажатии на кнопки.
хорошо, оно в консоль передает
но почему такая запись
function result (event){
event.target.value = document.querySelector(’.firstN’).value;
} - не передает это значение value в поле для ввода?
а что оно в консоли передает и откуда?
попробуйте вывести так:
function result (event){
console.log(event)
event.target.value = document.querySelector(‘.firstN’).value;
}
передает value той кнопки, по которой кликнули
выдает MouseEvent
но оно мне ничего не говорит (сложно понять)
Если переписать функцию event (на примере кнопки 1):
function result (event){
event.target.onekey = document.querySelector(‘.firstN’).value;
} - то в итоге при клике по кнопке 1 - передает уже значение undefined в поле ввода и на кнопке вместо 1 также появляется undefined
Возможно ошибка в записи event.target.onekey (идет обращение к переменной onekey).
Если обращаться к id этой кнопки : event.target.one - то та же ошибка undefined
И я не понимаю почему target вместо value. В моем понимании target - это для ссылки, указывает как открыть страницу.
Логично было бы:
event.value (значение инпута) .one (идентификатор этого инпута) = (присвоить) document.querySelector(‘.firstN’).value;(значение инпуту firstN )
Где можно почитать подробнее про target для input что ли (разве у инпутов бывает свойство target)?
MouseEvent и ест наш объекту
function result (event)
event -переменная (ничто, 0, псто), в нее вы запиСуёте MouseEvent
допустим event, это номер дома 69 - а вам нужен Гавриилов который живет в квартире 666 на 13 этаже. целью является Гавриилов вызываем его:
69.13.666.Гавриилов и он к вам снизойдет.
в картинках
Что тогда является объектом для этой кнопки:
input type = “button” class = “key” id = “one” value = “1” ?
Чему надо присвоить = document.querySelector(’.firstN’).value ?
Из примера - это input, потом его id потом class.
Как это записать в в коде?:
event.target.input#one.key = document.querySelector(’.firstN’).value; - так неверно
о
Передать value кнопки в value инпута
event.target.value - значение кнопки при нажатии в нее записывается число из
дома
вот тут видно какая кнопка была нажата
http://forum.jscourse.com/uploads/default/original/1X/043dc7be551bdf5f0324ca56c0e78e0046e77b88.png
document.querySelector(‘.firstN’).value -этим выражением вы обращаетесь к полю инпута class=“firstN” там у вас что?
теперь вы берете и value кнопки (тут у наз записано “3”)=присваиваете значение value инпута(???)
так вы делали раньше и пытаетесь повторить опять и опять…
другими словами вам
value инпута нужно присваивать, передавать,записывать значения value кнопки
Значит что - поменять местами?
document.querySelector(’.firstN’).value = event.target.three; (присваиваем полю значение кнопки 3)
но оно ничего не меняет. Либо неправильно значение кнопки записано.
а почему вы в event.target вставили .three ?
как по вашему где оно должно находится это .three ?
смотрите свойства MouseEvent
получается ошибка - в неправильной логике построения кода: присваивание значений в функции делается не для каждой кнопки отдельно, а одно для всех…
спасибо за объяснение
Но оно присваивает значение только одной кнопки в это поле ввода. Например, число из двух-трех цифр набрать на этом калькуляторе нельзя.
С помощью чего можно добавлять в поле другие значения кнопок?Хотя бы идею подкиньте (но не готовое решение)
читайте про массивы, конкатенацию
