Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.10.2011, 15:02
Новичок на форуме
Отправить личное сообщение для Shockk Посмотреть профиль Найти все сообщения от Shockk
 
Регистрация: 06.10.2011
Сообщений: 7

addEventListener и получение ID у вложенного элемента
Всем привет!

Подскажите, есть след.html код:
<div id="aaa">
<img src="1.jpg" id="1"/>
<img src="2.jpg" id="2"/>
<img src="3.jpg" id="3"/>
</div>


Есть обработчик клика:
var el = document.getElementById("aaa")
el1.addEventListener("click", getId, false)


В результате у меня на экране есть 2 картинки, нажимая на каждую из них, вызывается div обработчик. Как мне в этом обработчике получить ID картинки ???

Или есть более правильный вариант установки обработчика клика ???
Ответить с цитированием
  #2 (permalink)  
Старый 06.10.2011, 15:09
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

function getId(event)
 {
  event = event || window.event;
  var t = event.target || event.srcElement;
  alert(t.id);
 }
Ответить с цитированием
  #3 (permalink)  
Старый 06.10.2011, 15:41
Новичок на форуме
Отправить личное сообщение для Shockk Посмотреть профиль Найти все сообщения от Shockk
 
Регистрация: 06.10.2011
Сообщений: 7

dmitriymar, спасибо за ответ.

Мне тут предложили еще один вариант:

var el = document.getElementById("aaa")
var obj = el.getElementsByTagName("img")
for ( var i=0; i<obj.length; i++ ){
      obj[i].addEventListener("click", getId, false)
}


Какой из вариантов лучше использовать, если картинок будет около сотни?
Ответить с цитированием
  #4 (permalink)  
Старый 06.10.2011, 15:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Shockk
Какой из вариантов лучше использовать, если картинок будет около сотни?
Ответ очевиден. Тот, где меньше кода и циклов...
Ответить с цитированием
  #5 (permalink)  
Старый 06.10.2011, 15:56
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

в любом случае нужно получить доступ к элементу в каком произошло событие. код функции обработчика от этого не меняется.в первом варианте ещё остановить всплытие,но это 2 строки против сотни обработчиков. а "память браузера" не резиновая
Ответить с цитированием
  #6 (permalink)  
Старый 06.10.2011, 16:30
Новичок на форуме
Отправить личное сообщение для Shockk Посмотреть профиль Найти все сообщения от Shockk
 
Регистрация: 06.10.2011
Сообщений: 7

Понял, спасибо !!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение id элемента, родитель которого динамически меняет класс Serzhik jQuery 12 12.08.2011 13:03
Получение ссылки вызвавшего элемента belkir Events/DOM/Window 8 02.08.2011 12:32
Получение значения соседнего элемента Max Tretyakov Events/DOM/Window 2 27.06.2011 22:01
Получение первого элемента объекта Kein Events/DOM/Window 6 02.06.2010 20:01
Получение стиля элемента. BreatheInTheVoid Элементы интерфейса 4 01.05.2010 17:25