|    
			
				23/05/2013, 07:27
			
			
			  | 
  |   |  | Colaborador |  |  Fecha de Ingreso: junio-2008 
						Mensajes: 5.032
					 Antigüedad: 17 años, 4 meses Puntos: 1012 |  | 
  |  disasociar manejador evento ie8  
  el caso es que no soy capaz de eliminar el evento asociado. si prueban el código en cualquier navegador (excepto ie8), alertará  Cita:  en el primer click ---> 0en el segundo ---> 1
 en el tercer ----> 2
 en el cuarto ---> 3
 ........
 pero si lo prueban en ie8    Cita:  en el primer click ---> 0en el segundo ----> 1
 en el tercer ----> 2 y después 3
 en el cuarto ----> 4, 5, 6 y 7
 ...........
 aclaro que la función encargada de procesar el evento, ha de estar asociada a la variable   
Código:
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
var lib = {
Evento : function(elemento, nomevento, fnc) {
	if (elemento.addEventListener) {
		elemento.addEventListener(nomevento, fnc, false);
    	} else if (elemento.attachEvent) {
		elemento.attachEvent('on' + nomevento, function() { fnc.call(elemento, window.event);});
  	}
},
EventoEliminar : function(elemento, nomevento, fnc) {
	if (elemento.removeEventListener) {
		elemento.removeEventListener(nomevento, fnc, false);
    	} else if (elemento.detachEvent) {
		elemento.detachEvent('on' + nomevento, function() { fnc.call(elemento, window.event);});
  	}
},
obtenerEvento : function(event) {
	return (event) ? event : window.event;
}
};
var i = 0, n;
function f() {
lib.Evento(document.querySelector('.liga'), 'click', n = function(event) {foo(event, i)});
}
function foo(e, ii) {
var evt = lib.obtenerEvento(e);
	if (evt.preventDefault) {
	
		evt.preventDefault();
		evt.stopPropagation();
	} else {
		evt.returnValue = false;
		evt.cancelBubble = true;
	}
i++;
	if (ii >= 1) {
		lib.EventoEliminar(document.querySelector('.liga'), 'click', n);
		lib.Evento(document.querySelector('.liga'), 'click', n = function(event) {foo(event, i)});
	}
alert(ii);
}
window.onload = function() {f()};
</script>
</head>
<body>
<a class="liga" href="#">click aquí</a>
</body>
</html>
gracias     |