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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Понять на каком теге сработало событие 
:(
    Опции темы
Royan
Дата 1.3.2009, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

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



Допустим у меня есть такой HTML код

Код

<DIV onmouseover="showTip('tagTip')";>Text</DIV>


Задача: Внутри функции showTip(), получить ссылку на объект DIV'а, на котором выстрелило событий onmouseover.
Ограничение: Нельзя использовать вариант с передачей id тега или объекта тега в функцию showTip(), т.е. следующие два варианта не валидны:

Код

<!--Вариант 1-->
<DIV id="div_1" onmouseover="showTip('div_1', 'tagTip')";>Text</DIV>

<!--Вариант 2-->
<DIV onmouseover="showTip(this, 'tagTip')";>Text</DIV>



--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
bars80080
Дата 1.3.2009, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



почему this не валидно?

Это сообщение отредактировал(а) bars80080 - 1.3.2009, 21:36
PM MAIL WWW   Вверх
Soah
Дата 2.3.2009, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

<script type="text/javascript">
    function showTip(event, tag) {
        event = event || window.event;
        var thisElem = event.target || event.srcElement;
        
        alert(thisElem.nodeName);
    }
</script>

<div onmouseover="showTip(event, 'tagTip')";>Text</div>

 smile 

и всё таки, почему this не валидно?
а функцию showTip(), вызывает только этот div?
PM MAIL   Вверх
Royan
Дата 2.3.2009, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

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



Soah, Большое спасибо! Но на самом деле я ищу способ добраться до объекта event (и как следствие до теги на котором произошло событие) не посылая доп параметров в функцию, не то чтобы это было обусловлено какой-то технической необходимостью это скорее выпендреж с моей стороны.


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Royan
Дата 2.3.2009, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

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



Поискал сейчас ни caller ни что либо другое не подходит, но firebug как то ведь может добраться до события...


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Zeroglif
Дата 2.3.2009, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Royan,

Если для Mz, то event:

Код

arguments.callee.caller.arguments[0]


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


 




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


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

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