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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ни как не могу настроить выборку элемента посредством клика.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Сайга-12
Отправлено: 19 Декабря, 2013 - 13:28:38
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Первый вариант, без визуальных результатов:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.         var Block = document.getElementById('ОсновнойБлок') //Выбераю родительский элемент.
  3.         var elems = Block.getElementsByTagName('*') //Выбераю всех детишек родителя.
  4.        
  5.         for(var i=0; i<elems.length; i++) {
  6.                 var ThisElem = elems[i].id // Беру id элемента. По принципу: [id].onclick=function() [код], - всё прекрасно работает.
  7.                 ThisElem.onclick=function(){ // Но здесь этот принцип не работает.
  8.                         alert(i) // alert для проверки, какой элемент по индексу выбрался. На данный момент ни одного.
  9.                 }
  10.         }
  11.  

Второй вариант, с визуальными результатами:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.         var Block = document.getElementById('ОсновнойБлок') //Выбераю родительский элемент.
  3.         var elems = Block.getElementsByTagName('*') //Выбераю всех детишек родителя.
  4.        
  5.         for(var i=0; i<elems.length; i++) {
  6.                 elems[i].onclick=function(){ // В обработчик кладу не спеша текущий элемент без id.
  7.                         alert(i) // При клике на любого ребёночка родителя "ОсновнойБлок", в alert пишет последний элемент.
  8.                 }
  9.         }
  10.  
  11.  

В чём ошибка?
(Добавление)
Понять не могу, почему ни кто не отвечает, то ли мой пост глупый, то ли реально сложный.
 
 Top
IllusionMH
Отправлено: 19 Декабря, 2013 - 14:06:39
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Сайга-12, ну прям как по статье.
Изучайте http://javascript[dot]ru/basic/closure

Но хорошей практикой является использование одного обработчика на родителе, а потом в обработчике уже проверяется кто источник события и используются данные уже источника события.

(Отредактировано автором: 19 Декабря, 2013 - 14:08:34)

 
 Top
Сайга-12
Отправлено: 19 Декабря, 2013 - 17:37:17
Post Id



Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




IllusionMH пишет:
Сайга-12, ну прям как по статье.
Изучайте http://javascript[dot]ru/basic/closure

Но хорошей практикой является использование одного обработчика на родителе, а потом в обработчике уже проверяется кто источник события и используются данные уже источника события.

Спасибо огромное! Еще пару валенков, и я буду гуру. )
У меня недостаточно сообщений на форуме, чтобы кликнуть на "Спасибо".
Реально теперь работает.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB