Красивее так:
<!DOCTYPE HTML> <html> <body> <ul> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> <li>select *</li> </ul> </body> <script type="text/javascript"> (function(){ var ul=document.getElementsByTagName('ul')[0], li=ul.getElementsByTagName('li'); ul.onclick=function(e) { var t = e.target || event.srcElement,i=li.length; while(i--&&li[i]!==t); alert(i) } })() </script> </html> ... functon(event){ var el = event.target || event.srcElement; ... опасно так делать, опасно. |
Цитата:
|
Aetae, в IE8 не работает. Ругается на эту строчку
var t = e.target || event.srcElement; // 'target' - есть null или не является объектом Цитата:
ksa, да, они текстовые Еноты :D |
Вариант на jQuery ...
Узнать порядковый номер элемента |
Цитата:
(function(){ var ul=document.getElementsByTagName('ul')[0], li=ul.getElementsByTagName('li'); ul.onclick=function(e) { var t = *!*e.target*/!* || event.srcElement,i=li.length; while(i--&&li[i]!==t); alert(i) } })() так тоже опасно. в ie e будет undefined и обращение к target вызовет ошибку. |
Самдурак, вас поругал, а сам скопипэйстил.))
На самом деле там должно быть: var t = e?e.target:window.event.srcElementВсю жисть так делал а тут прошляпил. Наглядный пример вреда копипэйста.) |
Часовой пояс GMT +3, время: 03:45. |