Я использую эту простую рабочую функцию для добавления событий:
function AppendEvent(html_element, event_name, event_function)
{
if(html_element)
{
if(html_element.attachEvent) //IE
html_element.attachEvent("on" + event_name, event_function);
else if(html_element.addEventListener) //FF
html_element.addEventListener(event_name, event_function, false);
};
}
Выполняя этот простой тест:
AppendEvent(window, 'load', function(){alert('load 1');});
AppendEvent(window, 'load', function(){alert('load 2');});
Я заметил, что FF3.6 addEventListener добавляет каждое новое событие в конец очереди событий, поэтому в приведенном выше примере вы получите два оповещения с надписью «load 1» «load 2».
С другой стороны IE7 attachEvent вставляет каждое новое событие в начало очереди событий, поэтому в приведенном выше примере вы получите оповещения, говорящие «load 2» «load 1».
Есть ли способ исправить это и заставить оба работать одинаково?
Спасибо!