Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

JavaScript: как узнать, на каком элементе кликнули?

28K
26 мая 2008 года
Babutta
16 / / 07.02.2008
Подскажите, пожалуйста, как можно узнать на каком тэге был клик? Т.е., юзер кликает в каком-то месте странички, а мне, к примеру, надо выдать алерт с надписью "Вы кликнули на тэге <a>, параметр name этого тэга - 'my_link'".
10K
26 мая 2008 года
FAngel
77 / / 13.09.2006
в onclick - функции передать this, откуда уже можно брать все что угодно. начиная от имени тега, и заканчивая значениями твоих собственных параметров. А вообще стоит взять книгу по JS почитать, поставить мозилу с firebug(ИМХО, там довольно таки удобно работать с скриптами: и подебажить можно, и параметры подскажет) и покопатся во всем этом.
А вот примерчик небольшой(правда искать как добыть name - было лень, хотя можно втупую elem.getAttribute('name'), но в любом случае id, на сколько я помню, лучше использовать для идентификации конкретного элемента, чем name):
Код:
<head>
<script type="text/javascript">
function TellTagName(elem)
{
   if(elem)
   {
      alert("Вы кликнули на тэге <"+elem.tagName+">, параметр name этого тэга - '" +elem.id+"'");
   }
}
</script>
</head>
<body>
<div id="DivID" &#111;&#110;click="TellTagName(this)">Click Me!(div)</div>
<span id="SpanID" &#111;&#110;click="TellTagName(this)">Click Me!(span)</span>
</body>
28K
26 мая 2008 года
Babutta
16 / / 07.02.2008
Этот способ очевиден. Но было бы нерационально вписывать в каждый тэг на странице onClick="....". Хотелось бы повесить какой-то обработчик на событие onClick - и при клике в любой точке страницы узнавать на какой тэг кликнули. Что-то вроде document.onclick = function (e) {....} - только я не знаю, можно ли из этого e достать название тэга.
А файрфокс с файрбагом у меня давно стоит :)
28K
26 мая 2008 года
Babutta
16 / / 07.02.2008
Ну собственно, так и надо :)
Вот так работает:
document.onclick = function( e )
{
alert( e.target.tagName );
}
28K
26 мая 2008 года
Babutta
16 / / 07.02.2008
Да, так круче. :) Спасибо :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог