Показать сообщение отдельно
  #3 (permalink)  
Старый 03.09.2011, 11:46
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

В функции cancelEvent(e) была досадная ошибка в этих двух строчках:
if (e.stopPropagation) e.stopPropagation();
else if (e.preventDefault) e.preventDefault();
А надо так:
if (e.stopPropagation) // отмена всплывания события (стандарт W3C)
e.stopPropagation(); 
else e.cancelBubble=true;

if (e.preventDefault) // отмена действия браузера по-умолчанию
e.preventDefault();  
else e.returnValue=false;
А лучше так:
e.stopPropagation ? e.stopPropagation() : (e.cancelBubble=true); // отмена всплытия события
e.preventDefault ? e.preventDefault() : (e.returnValue=false);   // отмена действия браузера по-умолчанию
И FireFox заработал нормально. Одно не понятно: почему ошибка проявлялась только в FireFox, а в других броузерах нет?
Ответить с цитированием