Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2013, 07:27
Avatar de IsaBelM
IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 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 ---> 0
en el segundo ---> 1
en el tercer ----> 2
en el cuarto ---> 3
........
pero si lo prueban en ie8

Cita:
en el primer click ---> 0
en 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
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}