Показать сообщение отдельно
  #7 (permalink)  
Старый 14.07.2016, 09:05
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Сообщение от рони Посмотреть сообщение
рони,
var buttonClick = document.getElementsByClassName('Buttons');
/* можно так */
   for (i=0; i< buttonClick.length; i++)
   buttonClick[i].onclick = function()
  {     alert("OK class");
  };
/* а лучше так */
[].slice.call(buttonClick).forEach(function(item) {
        item.addEventListener('click', function() {
           alert("OK class");
        });
    });
/* или так */
[].forEach.call(document.querySelectorAll('.Buttons'), function(item) {
        item.addEventListener('click', function() {
           alert("OK class");
        });
    });
Спасибо всё сработало.
Сообщение от Ruslan_xDD Посмотреть сообщение
HTMLCollection.prototype.addEventListener = function() {
    for(var i = 0; i < this.length; i++) {
        Element.prototype.addEventListener.apply(this[i], Array.prototype.slice.call(arguments));
    }
};



document.getElementsByClassName('foo').addEventListener('click', function() {
   alert('Click on div.foo');
});


document.getElementsByClassName('bar').addEventListener('click', function() {
   alert('Click on div.bar');
});


Но лучший вариант - делегировать событие!
Пишет что document.getElementsByClassName(...).addEventListe ner is not a function. А что подразумевается под делегировать событие, и чем это лучше ?
Ответить с цитированием