Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка Uncaught TypeError
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Ошибка Uncaught TypeError

Страниц (1): [1]
 

1. Alex213 - 23 Июля, 2015 - 07:05:25 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1.     [].forEach.call(d.querySelectorAll('button'), function (but) {
  2.         but.addEventListener('click', function () {
  3.             var act = this.getAttribute('data-action');
  4.             cirles.forEach(function (el) {
  5.                 el.classList[act]('activess');
  6.             });
  7.         }, false);
  8.     });


В браузере выдает Uncaught TypeError: el.classList[act] is not a function как можно исправить?
2. DelphinPRO - 23 Июля, 2015 - 10:30:24 - перейти к сообщению
Сначала хотелось бы узнать, что код должен делать.
el.classList[act]('activess'); потому что совсем непонятная шняга.
3. Deonis - 23 Июля, 2015 - 10:35:21 - перейти к сообщению
Alex213 пишет:
как можно исправить?
Насколько я вижу, это часть кода, который я вам писал в предыдущей вашей теме. Переменной "act" присваивается значение или "add", или "remove", которые берутся из data-атрибутов кнопок и используются в качестве имени метода. Скорее всего, что вы или же изменили эти значения, или вообще убрали атрибут data-, в следствии чего и возникла ошибка.
4. Alex213 - 23 Июля, 2015 - 14:43:59 - перейти к сообщению
Deonis пишет:
Насколько я вижу, это часть кода, который я вам писал

Да вы правы, на самом деле даже в первоначальном варианте выскакивает такая ошибка, хотя все работает как надо, смущает только то, что в консоли хрома выскакивает данная ошибка, хотелось бы от нее избавиться, сначала сам пробовал как-то разобраться ( не особо пока разбираясь в javascript) , но в общем ничего так и не смог сделать
(Добавление)
Alex213 пишет:
Deonis пишет:
Насколько я вижу, это часть кода, который я вам писал

Да вы правы, на самом деле даже в первоначальном варианте выскакивает такая ошибка, хотя все работает как надо, смущает только то, что в консоли хрома выскакивает данная ошибка, хотелось бы от нее избавиться, сначала сам пробовал как-то разобраться ( не особо пока разбираясь в javascript) , но в общем ничего так и не смог сделать

Ой, хотя нет, извините, вы правы, я разобрался))
5. Alex213 - 23 Июля, 2015 - 19:49:52 - перейти к сообщению
Deonis пишет:
Насколько я вижу, это часть кода, который я вам писал

Все таки не дам ума что нужно сделать, чтоб не выскакивала ошибка в коде в моем случае, я просто пытаюсь засунуть в массив , может подскажите?

PHP:
скопировать код в буфер обмена
  1. .circle<?=$row_s['nom']?> {
  2.         background:url(img/ico/viem_p.png) no-repeat center center;
  3.         width:54px;
  4.         height:42px;
  5.         cursor:pointer;
  6. }
  7. .activess<?=$row_s['nom']?> {
  8.         background:url(img/ico/viem_c.png) no-repeat center center;
  9.  
}

CODE (javascript):
скопировать код в буфер обмена
  1. var d = document;
  2. d.addEventListener('DOMContentLoaded', function () {
  3.     var cirles = [].slice.call(d.querySelectorAll('.circle<?=$row_s['nom']?>'));
  4.  
  5.     [].forEach.call(d.querySelectorAll('button'), function (but) {
  6.         but.addEventListener('click', function () {
  7.             var act = this.getAttribute('data-action<?=$row_s['nom']?>');
  8.             cirles.forEach(function (el) {
  9.                 el.classList[act]('activess<?=$row_s['nom']?>');
  10.             });
  11.         }, false);
  12.     });
  13.    
  14.     cirles.forEach(function (el) {
  15.         el.addEventListener('click', toggleCirсleClass);
  16.     });
  17.  
  18.     function toggleCirсleClass() {
  19.         this.classList.toggle('activess<?=$row_s['nom']?>');
  20.     }
  21.  
  22. }, false);
  23.  


CODE (html):
скопировать код в буфер обмена
  1.  <li><button data-action<?=$row_s['nom']?>="add">Выделить все</button></li>
  2.  <li><button data-action<?=$row_s['nom']?>="remove">Отменить выделение</button></li>
6. Deonis - 23 Июля, 2015 - 23:13:59 - перейти к сообщению
Alex213 пишет:
.circle<?=$row_s['nom']?>
Alex213 пишет:
d.querySelectorAll('.circle<?=$row_s['nom']?>')
Alex213 пишет:
data-action<?=$row_s['nom']?>="add"

Шок Это что было? Я даже не знаю, как реагировать на такой код. Вы всегда смешиваете всё в кучу: php, html, css, js...? Зачем вам нужно добавлять какие-то значения $row_s['nom']?
7. Alex213 - 24 Июля, 2015 - 05:42:06 - перейти к сообщению
Deonis пишет:
Вы всегда смешиваете всё в кучу: php, html, css, js...?

Я просто недавно этим делом занимаюсь и делаю пока не совсем разумно

 

Powered by ExBB FM 1.0 RC1