Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   getElementsByClassName не срабатывает на clicks (https://javascript.ru/forum/misc/63993-getelementsbyclassname-ne-srabatyvaet-na-clicks.html)

Black_Star 15.07.2016 14:48

Эмм, чёт не вышло
https://jsfiddle.net/3xe1fp9r/9/
Добавил я свойство show и redCircle.classList.toggle('show', false) но событие по лику не отображается //Cannot read property 'toggle' of undefined
И ещё я не очень понял как этот toggle работает со стилями который определены не в теге <style> а в отдельном css файле, там же как то путь надо прописать?

рони 16.07.2016 17:21

Black_Star,
потому что вы как и прежде не понимаите разницу между списком redCircle и элементом redCircle[i] и чем будет i после for

Black_Star 16.07.2016 17:46

Цитата:

Сообщение от рони (Сообщение 422245)
Black_Star,
потому что вы как и прежде не понимаите разницу между списком redCircle и элементом redCircle[i] и чем будет i после for

При работе с классами, [i] будет номером элемента в данном классе с которым мы планируем работать.

рони 16.07.2016 17:58

Black_Star,
чем не устроил пост 10?

рони 16.07.2016 18:03

Цитата:

Сообщение от рони
чем будет i после for

redCircle[i].classList.toggle('show', false) // так работать не будет, хотя с виду всё правильно

Black_Star 16.07.2016 20:48

Цитата:

Сообщение от рони (Сообщение 422255)
redCircle[i].classList.toggle('show', false) // так работать не будет, хотя с виду всё правильно

:) Это я уяснил сразу же, хотя оно меня и смутило. Вроде как привязка идет к одному и тому же номеру массива. (Первый элемент первого массива = первому элементу первого подмассива и тд.)

рони 16.07.2016 20:57

Black_Star,
когда происходит вызов функции i будет равно во всех функциях одному и тому же.
чтоб этого не происходило смотрите пост 5
[].forEach.call(document.querySelectorAll('.Buttons'), function(item, i) {
        item.addEventListener('click', function() {
           alert(i);
        });
    });


по ссылкам прочтите внимательно
http://javascript.ru/basic/closure#p...-ispolzovaniya

https://learn.javascript.ru/traversi...массивы


Часовой пояс GMT +3, время: 19:10.