Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Имитация клика
 
 автор: Macabre   (20.08.2010 в 23:38)   письмо автору
 
 

Есть HTML код:

<div id ="bag">
  <div id ="img_случайное число">
    <img src="..." onclick="..." id ="случайное имя">
  </div>
</div>


Нужно узнать при клике на картинку,id дива,в которой она находится.
Что подскажите?

Пробовал addEventListener,но успехов ноль

  Ответить  
 
 автор: sl1p   (21.08.2010 в 00:16)   письмо автору
 
   для: Macabre   (20.08.2010 в 23:38)
 

<img onclick=" var pn = this; while(pn = pn.parentNode) if(pn.tagName && pn.tagName == 'DIV' && pn.id) { alert(pn.id) } ">

  Ответить  
 
 автор: sim5   (21.08.2010 в 06:00)   письмо автору
 
   для: sl1p   (21.08.2010 в 00:16)
 

А к чему такие сложности, что не достаточно будет узнать родителя так: alert(this.parentNode.id) ?

  Ответить  
 
 автор: Lelik   (21.08.2010 в 14:18)   письмо автору
 
   для: sim5   (21.08.2010 в 06:00)
 

в ФФ this.parentNode может выступать текстовый нод, так, что для корректной работы нужны такие сложности

  Ответить  
 
 автор: sim5   (21.08.2010 в 14:33)   письмо автору
12.6 Кб
 
   для: Lelik   (21.08.2010 в 14:18)
 

<div id ="bag"> 
  <div id ="img_123"> sdfsdf
    <img src="as.as" onclick="alert(this.parentNode.id)" id ="i_123"> 
  </div> 
</div>


Да и не видно у автора иных родителей.

  Ответить  
 
 автор: Macabre   (21.08.2010 в 18:12)   письмо автору
 
   для: Macabre   (20.08.2010 в 23:38)
 

Дело в том ,что сайт не мой и я соответсвенно не могу редактировать содержимое страницы(кроме файрбага и т.д.)

При клике на картинку просхсодит замена картинки.

Я ввести скрипт и чтобы при клике по картинке ,она не заменялась и показывался айди дива,в котором она находится.Вот текущий скрипт:


addEventListener('click',function (e) {
    e.stopPropagation(); // Не работает
    alert(e.target.parentNode.id); // работает
    this.removeEventListener('click',arguments.callee,false);
},false);

  Ответить  
 
 автор: АЯ   (22.08.2010 в 00:43)   письмо автору
 
   для: Macabre   (21.08.2010 в 18:12)
 

Как я понял, добавить onclick тегу в HTML-код Вы не можете.
Но можете внести какие-то изменения в блок <script></script> или во внешний js-файл.
Так?

Вам надо тогда ПОСЛЕ ЗАГРУЗКИ окна пробежаться циклом по всем тегам IMG страницы, определить те из них, кои имеют непустые id и находятся внутри div'ов c непустыми id, отменить прописанные у них (но ненужные Вам) функции, и назначить им исполнение нужной Вам функции.
Делается это (если по-простому, но кроссбраузерно) ТАК:
onload = function ()
{
for (var imgs = document.getElementsByTagName ('img'), j = 0; j < obj.length; j++)
if (imgs [j].id && imgs [j].parentNode.tagName == 'DIV' && imgs [j].parentNode.id)
{imgs [j].onclick = null; imgs [j].onclick = mySuperFunction}
}

function mySuperFunction (ev)
{
var e = ev || window.event, o = e.srcElement || e.target;
alert (o.parentElement.id);
}

  Ответить  
 
 автор: sl1p   (22.08.2010 в 01:58)   письмо автору
 
   для: АЯ   (22.08.2010 в 00:43)
 

а чё за parentElement такой?

  Ответить  
 
 автор: Lelik   (22.08.2010 в 02:19)   письмо автору
 
   для: sl1p   (22.08.2010 в 01:58)
 

метод такой

  Ответить  
 
 автор: sl1p   (22.08.2010 в 02:49)   письмо автору
 
   для: Lelik   (22.08.2010 в 02:19)
 

мм насколько я понял оно не учитывает текстовые ноды?

  Ответить  
 
 автор: АЯ   (22.08.2010 в 08:57)   письмо автору
 
   для: АЯ   (22.08.2010 в 00:43)
 

Исправьте мою опечатку:
for (var imgs = document.getElementsByTagName ('img'), j = 0; j < imgs.length; j++) 

PS. свойство parentElement лучше замените на offsetParent

  Ответить  
 
 автор: Macabre   (22.08.2010 в 23:06)   письмо автору
 
   для: АЯ   (22.08.2010 в 08:57)
 

Ок.спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования