Множественные события
function get(elem){
if(typeof(elem) == 'object') return elem;
return document.getElementById(elem);
}
function eventhandler(e){
e = e || window.event;
if(!this.handlers) return;
if(!this.handlers["on" + e.type]) return;
for(var i = 0; i < this.handlers["on" + e.type].length; i++){
if(this.handlers["on" + e.type][i]) this.handlers["on" + e.type][i](e);
}
}
function addevent(elem,name,handler){
if(typeof(elem) != "object") elem = get(elem);
//Если доступна функция addEventListener - то очень хорошо
if(elem.addEventListener){
elem.addEventListener(name, handler, false);
}
else if (elem.attachEvent){
elem.attachEvent("on" + name, handler);
}
else {
//Старые версии браузера
if(!elem.handlers) elem.handlers = {};
handlers = elem.handlers;
if(!handlers["on"+name]) {
elem.handlers["on"+name] = new Array();
//Если раньше уже был установлен обработчик - добавить его тоже
if(elem["on" + name]) handlers["on"+name].push(elem["on" + name]);
}
handlers["on"+name].push(handler);
elem["on"+name] = eventhandler;
}
}
Проверено в современных версиях Firefox и Internet Explorer.
|
Roksa pl zakopane
Roksa krakow nowa huta
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.