Foros del Web » Programando para Internet » Javascript »

Cancelar eventos momentaneamente

Estas en el tema de Cancelar eventos momentaneamente en el foro de Javascript en Foros del Web. Buenas compañeros, ¿Es posible "adormecer" todos los eventos de todos los objetos de un div?. Que los links no funcionen, que los formularios no se ...
  #1 (permalink)  
Antiguo 28/07/2013, 08:43
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Cancelar eventos momentaneamente

Buenas compañeros,

¿Es posible "adormecer" todos los eventos de todos los objetos de un div?. Que los links no funcionen, que los formularios no se envien, que los onmouseover no funcionen.

He pensado en poner un div superpuesto a todo el contenido y ocultarlo cuando quiera volver a activar el javascript, pero es una forma un poco cutre.

¿Existe alguna forma?, algo parecido a pointer-events:none; en CSS pero en Javascript.

Lo pregunto sabiendo que podria hacer un bucle que recorra todos los objetos quitando los eventos, pero no quiero eso. Buscaba algo mas directo que no me obligue a recorrer todos los objetos.

Algo como:

midiv.sleepEvents();

¿Existe algo parecido?
  #2 (permalink)  
Antiguo 28/07/2013, 09:09
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Cancelar eventos momentaneamente

buenas...
aquí de nuevo podrías intentar lo que te comente en otro tema con la delegación de eventos, http://www.forosdelweb.com/showthread.php?p=4477872. en este caso, asigna todos los eventos que quieras cancelar a un elemento ancestral, por ejemplo BODY. en cada evento vas a recibir un objeto Event con el cual pedes controlar su propagación y acción. en particular, con event.stopPropagation evitas que ese evento se propague por los elementos, y con event.preventDefault cancelas el evento.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 28/07/2013 a las 19:40 Razón: typo_err
  #3 (permalink)  
Antiguo 28/07/2013, 09:29
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Cancelar eventos momentaneamente

Ayba... zerokilled... no te entendi entonces... jeje... he ido de listo por la vida.

Uf uf... creo que me acabas de abrir un mundo.... yujuuu!.

Que bien... muchas gracias!
  #4 (permalink)  
Antiguo 28/07/2013, 11:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Cancelar eventos momentaneamente

el siguiente código es un ejemplo con el evento onclick. el mismo principio se utiliza para el resto de los eventos. no obstante, hay unos cuantos eventos que no se pueden cancelar, no recuerdo cuales son.
Código:
self.addEventListener('click', function(event){
event.stopPropagation();
event.preventDefault();
}, true /* fase CAPTURE */ );
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 28/07/2013, 16:04
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Cancelar eventos momentaneamente

zerokilled muchas gracias!,

Ahora mismo me pongo a probarlo, jeje.

:D

Etiquetas: cancelar, eventos, formulario, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:29.