Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Способ найти элемент, с которго пришло событие


Автор: aEk 25.9.2006, 16:00
Пытаюсь разобраться с событиями...

Поясните плиз, почему обработка клика на "TEST1" работает в FF (1.0.4), Opera(7.23), IE 6.0, а по клику на "TEST2" работают все, кроме IE6.0, который ругается на alert(target.nodeName)    

Код

function nodename(evt)
{   evt = (evt) ? evt : ((window.event) ? event : null )

    if (evt) 
    {      var target = (evt.target) ? evt.target : ((evt.scrElement) ? evt.srcElement : null )      
            //if(target) 
            alert(target.nodeName);              
   }

}


Код

<div onclick="alert((event.srcElement? event.srcElement: event.target).nodeName);">TEST1</div>
<div onclick="nodename(event);">TEST2</div>

Автор: 12345c 25.9.2006, 17:29
2-я строчка написана для работы с обработчиком событий (не через атрибут onclick). Для Вашего случая она должна отсутствовать. (И условие if(evt) излишне.)


Автор: aEk 25.9.2006, 18:51
Цитата(12345c @ 25.9.2006,  17:29)
2-я строчка написана для работы с обработчиком событий (не через атрибут onclick). Для Вашего случая она должна отсутствовать. (И условие if(evt) излишне.)

Если я правильно понял, то должно быть так (только при этом ничего принципиально не поменяется):

Код

function nodename(evt)
{        var target = (evt.target) ? evt.target : ((evt.scrElement) ? evt.srcElement : null )      
      alert(target.nodeName);              
}

Автор: AKS 25.9.2006, 21:03
aEk, 
В условии evt.scrElement!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)