21.08.2016, 14:30
|
|
Аспирант
|
|
Регистрация: 22.07.2013
Сообщений: 30
|
|
Калькулятор (советы)
Сделал вот такой простой калькулятор, для того чтобы хоть как-то закрепить полученные знания, хотел бы от опытных программистов услышать советы, где и какой код лучше было бы написать другим образом и только что заметил что в mozilla firefox этот калькулятор почему-то не работает.
https://jsbin.com/vamawo/edit?html,css,js,output
|
|
21.08.2016, 14:42
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
moslem,
calcBtn это не массив
|
|
21.08.2016, 14:45
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
moslem,
вот так будет массив
var calcBtn = [].slice.call(document.querySelectorAll('#calc .calc-btn'),0);
|
|
21.08.2016, 14:54
|
|
Аспирант
|
|
Регистрация: 22.07.2013
Сообщений: 30
|
|
Сообщение от рони
|
moslem,
calcBtn это не массив
|
сейчас через цикл сделал, везде работает.
Я изначально пытался выбрать элемент через getElementsByClassName
var calcBtn = document.getElementsByClassName('.calc-btn')[0];
calcBtn.addEventListener('click', function(e){
console.log(e.target);
});
у меня только первый элемент выбирала, а остальные не работали, по какой причине это может быть?
|
|
21.08.2016, 15:20
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
если выбрали только первый, откуда другие появятся?
|
|
21.08.2016, 15:22
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
Сообщение от moslem
|
сейчас через цикл сделал
|
достаточно было заменить 1 строку - см. пост 3
|
|
21.08.2016, 15:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,108
|
|
moslem,
getElementsByClassName - живой список
document.querySelectorAll('#calc .calc-btn') - список на момент поиска. оба не массивы и методов массивов не имеют.
коллекции-не-массивы
|
|
21.08.2016, 15:40
|
Кандидат Javascript-наук
|
|
Регистрация: 22.03.2016
Сообщений: 132
|
|
Ну так в принципе ничего, нашел следующие замечания:
1) Хотелось бы видеть 0 когда все сбрасываешь;
2) Хотелось бы видеть число с правой стороны;
3) Цвета хотелось бы видеть бело-синие, мне они больше нравятся, чем блевотно-зеленые.
4) Хотелось бы видеть кнопку BackSpace - удаление одной циферки.
Последний раз редактировалось Strongman, 21.08.2016 в 15:44.
|
|
21.08.2016, 17:32
|
|
Аспирант
|
|
Регистрация: 22.07.2013
Сообщений: 30
|
|
рони, я заменил на тот код который в посте 3, спасибо.
Strongman,
я кстати хотел сделать когда сбрасываешь, чтоб цифра 0 была, но когда человек обратно начинает вводить, этот ноль впереди стоит.
|
|
21.08.2016, 18:22
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от moslem
|
когда человек обратно начинает вводить, этот ноль впереди стоит
|
Удаляйте его - введенное_значение=введенн ое_значение.replace(/^0(?!\.|,)/, ''), оставив в коде вместо \.|, значение для десятичного ввода - (?!\.) или (?!,).
Вообще-то ноль слева незначащий, на расчет не повлияет.
|
|
|
|