@NickBetali

Почему работает только 2 вариант (addEventListener)?

Вариант 1
(function() {
var buttons = document.getElementsByTagName('button');
  for (var i = 0, len = buttons.length; i < len; i++) {  
    buttons[i].onClick = function () {
    if (this.id === 'day') {
      document.body.className = 'day';
    } else if (this.id === 'night') {
      document.body.className = 'night';
    }
  };
  };
})();

Вариант 2

(function() {
var buttons = document.getElementsByTagName('button');
var changeColor = function() {
     if (this.id === 'day') {
        document.body.className = 'day';
      } else if (this.id === 'night') {
        document.body.className = 'night';
      }
};
for (var i = 0, len = buttons.length; i < len; i++) {  
    buttons[i].addEventListener('click', changeColor, false);
    };
})();


2 примера простейшего кода, но 1 вариант почему-то не работает (последняя версия Chrome)
  • Вопрос задан
  • 2301 просмотр
Решения вопроса 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1) потому что второй способ более рассово верен
2) потому что не onClick а onclick.
Ответ написан
Комментировать
@IceJOKER
Web/Android developer
"как и все свойства объектов JavaScript, имя свойства onсобытие чувствительно к регистру символов и должно быть в нижнем регистре. "
javascript.ru/tutorial/events/intro
Ответ написан
Комментировать
kissarat
@kissarat
Node.js
Да и onclick может быть только один
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы