Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.07.2012, 18:54
Интересующийся
Отправить личное сообщение для LeD4eG Посмотреть профиль Найти все сообщения от LeD4eG
 
Регистрация: 16.04.2012
Сообщений: 14

Определение источника события в Mozilla 13
Добрый вечер!
Для определения источника события использую следующий код:

function funcName(event){
   var event = (event)? event : window.event,
        target = (event.target)? event.target : event.srcElement;
}
Далее по коду провожу манипуляции с источником события. И проблем не возник в Chrome 20, Opera 12,Safari 5, IE7-9. Однако, Mozilla 13 отличилась и выдаёт в консоль, что target underfined.
Не могли бы вы подсказать почему наблюдается такое поведение и как его избежать?

Заранее благодарен!
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2012, 20:23
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

ваш код можно сократить
var e = event || window.event;
var target = e && e.target || event.scrElement
.
откуда вы вызывает функцию(больше кода покажите)?
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2012, 22:07
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber Посмотреть сообщение
ваш код можно сократить
var e = event || window.event;
var target = e && e.target || event.scrElement
Не-а
var target = event ? event.target : window.event.srcElement;


Сообщение от LeD4eG
Однако, Mozilla 13 отличилась и выдаёт в консоль, что target underfined.
А у меня всё работает. Попробуйте:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta content="text/html; charset=windows-1251" http-equiv="Content-Type">
<script type="text/javascript">
document.onclick = function(event) {
 var target = event ? event.target : window.event.srcElement;
 alert(target.tagName);
};
</script>
</head><body>
<div>div</div>
<span>span</span><br>
<font>font</font>
</body></html>

Последний раз редактировалось Раед, 13.07.2012 в 22:14.
Ответить с цитированием
  #4 (permalink)  
Старый 13.07.2012, 22:22
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Раед Посмотреть сообщение
Не-а
var target = event ? event.target : window.event.srcElement;



А у меня всё работает. Попробуйте:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta content="text/html; charset=windows-1251" http-equiv="Content-Type">
<script type="text/javascript">
document.onclick = function(event) {
 var target = event ? event.target : window.event.srcElement;
 alert(target.tagName);
};
</script>
</head><body>
<div>div</div>
<span>span</span><br>
<font>font</font>
</body></html>
ну тогда может так
var target = e&&e.target || event.srcElement;
Ответить с цитированием
  #5 (permalink)  
Старый 14.07.2012, 00:21
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от cyber
var target = e&&e.target || event.srcElement;
Да, тоже вариант
Ответить с цитированием
  #6 (permalink)  
Старый 14.07.2012, 00:57
Интересующийся
Отправить личное сообщение для LeD4eG Посмотреть профиль Найти все сообщения от LeD4eG
 
Регистрация: 16.04.2012
Сообщений: 14

Функция вызывается из addEventListener. так в остальных-то браузерах работает. мне не понятно почему в Firefox данная проблема возникла.
Пысы: Спасибо за советы по сокращению.
Ответить с цитированием
  #7 (permalink)  
Старый 14.07.2012, 13:42
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta content="text/html; charset=windows-1251" http-equiv="Content-Type">
<script type="text/javascript">
document.addEventListener('click', function(event) {
 var target = event ? event.target : window.event.srcElement;
 alert(target.tagName);
}, false);
</script>
</head><body>
<div>div</div>
<span>span</span><br>
<font>font</font>
</body></html>

Всё работает
Ответить с цитированием
  #8 (permalink)  
Старый 14.07.2012, 15:44
Интересующийся
Отправить личное сообщение для LeD4eG Посмотреть профиль Найти все сообщения от LeD4eG
 
Регистрация: 16.04.2012
Сообщений: 14

Раед, я также обескуражен.
var elementLink = document.getElementById("elementID");
if(elementLink.addEventListener){
   elementLink.addEventListener("mousedown", funcName);
} else {
   elementLink.attachEvent("onmousedown", funcName);
}
function funcName(event){
    var event = (event)? event : window.event;
    var target = (event.target)? event.target : event.srcElement;
    //так как источник события изображение
    var oldSrc = target.src;
    ..........
}


Работает везде, кроме Mozilla 13 (target - underfined)
Ответить с цитированием
  #9 (permalink)  
Старый 14.07.2012, 17:21
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

LeD4eG,
HTML покажите
Ответить с цитированием
  #10 (permalink)  
Старый 15.07.2012, 12:05
Интересующийся
Отправить личное сообщение для LeD4eG Посмотреть профиль Найти все сообщения от LeD4eG
 
Регистрация: 16.04.2012
Сообщений: 14

событие возникает в блоке при наведении
<a href="#"><img src="..."/></a>

Последний раз редактировалось LeD4eG, 15.07.2012 в 12:25.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает обработчик события в Mozilla Firefox Guliashik Events/DOM/Window 11 07.06.2012 00:31
Дебаг js, или как найти обработчик события для тега jimm88 Events/DOM/Window 1 18.04.2012 15:11
Передача параметров в колбэки и дальнейшее их вешанье на события. Gremlin Общие вопросы Javascript 17 13.08.2011 08:54
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47
Явный вызов процедуры обработки события. supchik Общие вопросы Javascript 18 27.01.2009 13:16