Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> addEventListner и функция, ошибки в обработке функции addEventListn 
:(
    Опции темы
In0stRAnez
  Дата 19.6.2016, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 30.3.2008

Репутация: нет
Всего: нет



Добрый вечер коллеги!

Помогите решить такой вопрос:

с помощью ajax получаю json и на основе этого строю список

Код

var data = JSON.parse(data),
      l = data.length,
      html = '';
                
      for(a = 0;a < l;a++){
           html += '<div item><div title>'+data[a].name+'</div></div>';
      }
      document.querySelector("[menu]").insertAdjacentHTML("beforeend", html);


получается куча таких...
Код

<div menu>
...
<div item k="1">
     <div title k="2">WordPress News Magazine Charts the Most Fashionable New York Couples in 2016</div>
     <div content k="3">
         <div title>My SUPER Text WordPress News Magazine Charts the Most Fashionable New York Couples in 2016</div>
     </div>
</div>
...
</div>


далее мне необходимо отлавливать события клика, что я и делаю после того как будет залив (insertAdjacentHTML)

пробовал два варианта

Код

/*for(a = 0;a < l;a++){
     items[a].addEventListener('click', posts.eventClick);
}*/
            
[].forEach.call(document.querySelectorAll('[menu] [item]'), function(el) {
     el.addEventListener('click', posts.eventClick);
});


события вешаются в обоих вариантах хорошо, далее при клики идём в функцию posts.eventClick

Код

eventClick: function(event){
     var t = event.target || event.srcElement;
            
     title = t.querySelector('[content] [title]').innerHTML;
     alert(title);

            
     //alert(t.getAttribute('k'));
     //title = t.querySelector('[content]').innerHTML;
     //alert(t.querySelector('[content] [title]').getAttribute('k'));
     //document.querySelector("[content]").innerHTML = '';
     //document.querySelector("[content]").innerHTML = '<div title>'+title+'</div>';
        
}


так вот суть проблемы, мне необходимо получить значение из [title], но функция срабатывает через раз а то и реже..

вот примерные ошибки

Код

TypeError: null is not an object (evaluating 't.querySelector('[content] [title]').innerHTML')


как я понял, тут говорится что объект (узел) не существуют.
но ведь дом уже сформирован и событие висит!!??

у кого есть какие мысли?
Спасибо заранее!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0381 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.