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

HTML+CSS+JavaScript

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

 

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

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

тема: Перехват события click и определение элемента в JavaScript
 
 автор: Valleri   (17.05.2011 в 15:49)   письмо автору
 
 

Как перехватить событие click в JavaScript при нажатии на элемент <div> или <a>
и определить атрибуты, индентификатор и значение нажатого элемента?

  Ответить  
 
 автор: Абырвалг   (17.05.2011 в 17:35)   письмо автору
 
   для: Valleri   (17.05.2011 в 15:49)
 

"значение нажатого элемента" - это что такое?

  Ответить  
 
 автор: psychomc   (17.05.2011 в 17:54)   письмо автору
 
   для: Valleri   (17.05.2011 в 15:49)
 

<a id="id" href="#" class="cls" onclick="alert(this.className); alert(this.id);alert(this.innerHTML)">ссылка</a>

  Ответить  
 
 автор: Valleri   (17.05.2011 в 20:48)   письмо автору
 
   для: psychomc   (17.05.2011 в 17:54)
 

<script>
код определяющий кликнутую ссылку( идентификатор, ссылку, текст сылки )
</script>
<a id="idXXX" href="http://wewewew.ru" >текст сылки</a>

У меня много ссылок на странице. Если у каждой писать вызов, то груз большой.

  Ответить  
 
 автор: cheops   (17.05.2011 в 21:26)   письмо автору
 
   для: Valleri   (17.05.2011 в 20:48)
 

В массив все idXXX собрать сможете? Как вариант допускается ли использование jQuery?
Можно отталкиваться от следующего скрипта
<script> 
  window.onload = function () {  
    document.getElementById('idXXX').onclick = function (event){ 
      alert(event.target.id);
    }  
  } 
</script> 
<a id="idXXX" href="#">текст сылки</a>

  Ответить  
 
 автор: Valleri   (17.05.2011 в 21:45)   письмо автору
 
   для: cheops   (17.05.2011 в 21:26)
 

А как href и текст ссылки? Кроссбраузерность?

  Ответить  
 
 автор: Valleri   (17.05.2011 в 21:46)   письмо автору
 
   для: cheops   (17.05.2011 в 21:26)
 

А как href и текст ссылки? Кроссбраузерность?
alert(event.target.href ); ??
текст ссылки?

  Ответить  
 
 автор: Абырвалг   (18.05.2011 в 00:07)   письмо автору
 
   для: Valleri   (17.05.2011 в 21:46)
 

onload = function ()
{
for (var j = 0, cl = document.getElementsByTagName ('A'), lg = cl.length; j < lg; j++) cl [j].onclick = myFunc;
}

function myFunc (ev)
{
var e = window.event || ev, obj = e.target || e.srcElement;
alert (obj.id) //или (obj.href) или вообще всё то, что надо знать о теге obj, на который кликнули

//Узнать можно значение любого свойства тега (включая свойства стиля - через currentStyle или getComputedStyle).
//Узнать можно значение любого аргумента тега.

//Только вот "значения нажатого элемента" узнать нельзя.
}

[поправлено модератором]

  Ответить  
 
 автор: Valleri   (18.05.2011 в 10:23)   письмо автору
 
   для: Абырвалг   (18.05.2011 в 00:07)
 

Выражение "значение нажатого элемента". Метафора, сленг.
Было использовано для сообразительных.
Уточняю по требованию для Вас.
Например, вот так, правильно будет?
Но работает не во всех браузерах.

<script language="JavaScript" type="text/javascript">
window.onclick = function() {
  
   alert(event.target.id);
   alert(event.target.href);
   alert(event.target.text);  // имелось ввиду это значение, в    DOM это "nodeValue"
 
}
</script>
<!-- <p id="para"><em>JavaScript</em> Phrasebook</p>     -->
<a id="para1" href="http://infois.ru">JavaScrip1</a> 
<a id="para2" href="http://infois2.ru">JavaScrip2</a> 
<a id="para3" href="http://infois2.ru" >JavaScrip3</a> 
 


В математике есть понятие значение переменной.
В php это наверное value
В JavaScript это зависит от способа обращения, например в DOM это "nodeValue"...
http://www.javascriptkit.com/domref/nodetype.shtml

<div id="test">Old text</div>

<script type="text/javascript">
if (document.getElementById("test").firstChild.nodeName=="#text")
document.getElementById("test").firstChild.nodeValue="New text"

</script>


Вообще-то надо думать человеческой головой, прежде чем пытаться оскорблять

  Ответить  
 
 автор: Valleri   (17.05.2011 в 21:47)   письмо автору
 
   для: cheops   (17.05.2011 в 21:26)
 

А как href и текст ссылки? Кроссбраузерность?
alert(event.target.href ); ??
текст ссылки?

  Ответить  
 
 автор: Valleri   (17.05.2011 в 21:48)   письмо автору
 
   для: Valleri   (17.05.2011 в 21:47)
 

У вас getElementById('idXXX'). Так его и надо определить

  Ответить  
 
 автор: SHAman   (19.05.2011 в 10:14)   письмо автору
 
   для: Valleri   (17.05.2011 в 15:49)
 

Псевдокод:
element.onclick = function(e)    {
    var elm = e.target || event.srcElement; //получение элемента, на котором кликнули
    alert(elm.id);
}


Решал похожую проблему на jQuery тут.

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

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