Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Deshabilitar todos los eventos onclick temporalmente

Estas en el tema de Deshabilitar todos los eventos onclick temporalmente en el foro de Javascript en Foros del Web. Hola! Espero puedan ayudarme con este problema, ya que no se por donde empezar. Lo que busco es deshabilitar todos los elementos de una página, ...
  #1 (permalink)  
Antiguo 13/05/2013, 10:45
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Deshabilitar todos los eventos onclick temporalmente

Hola!

Espero puedan ayudarme con este problema, ya que no se por donde empezar.

Lo que busco es deshabilitar todos los elementos de una página, que tengan el evento "onclick" temporalmente y luego volver a habilitarlos.

En otras palabras quiero lograr algo como esto:

<div onclick="algo();">habilitado</div>
<a onclick="funcion();">habilitado</a>

presiono un botón y quedan así o de alguna forma en que no funcionen:

<div onclick="">habilitado</div>
<a onclick="">habilitado</a>

luego presiono otro botón y quedan como estaba al principio:

<div onclick="algo();">habilitado</div>
<a onclick="funcion();">habilitado</a>

hasta ahora lo que se me había ocurrido es guardar toda la página en una variable, luego borrar todos los onclick y para terminar recuperar la página guardada en la variable, pero no me parece optimo.

Puede ser con JS o jQuery

Gracias por su ayuda!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 13/05/2013, 12:01
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Deshabilitar todos los eventos onclick temporalmente

Si bien no te puedo decir exactamente cómo lograr lo que quieres, aquí hay un enlace que te podría ayudar:

http://stackoverflow.com/questions/1...ment-in-jquery

lo que me intriga es por qué o para qué necesitas algo así, quizá si indicaras la finalidad se te pudiera ofrecer otra alternativa.
  #3 (permalink)  
Antiguo 13/05/2013, 15:28
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Deshabilitar todos los eventos onclick temporalmente

El objetivo es que todos los elementos dejen de funcionar cuando el usuario presiona un botón que deja la página en un estado llamado "ayuda", donde se puede presionar cualquier elemento para obtener ayuda sobre ese elemento sin que se ejecute su función. esto es más que nada para celulares.

originalmente pensaba poner un tooltip que saldría al pasar el mouse por encima de cada elemento, pero eso no sirve en celulares touch.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 13/05/2013, 17:04
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Deshabilitar todos los eventos onclick temporalmente

Realmente es complicado, no sería cambiar

<div onclick="algo();">habilitado</div>
por
<div onclick="">habilitado</div>

Si no cambiar
<div onclick="algo();">habilitado</div>
por
<div onclick="alert('Explicación');">habilitado</div>

¿no?


¿No te valdría esto?
Código HTML:
Ver original
  1. var estadoayuda = false;
  2. <div onclick="if(estadoayuda){alert('Explicacion')}else{algo();}">Boton</div>
__________________
@angelxab Twiiter
  #5 (permalink)  
Antiguo 13/05/2013, 17:47
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Deshabilitar todos los eventos onclick temporalmente

Pues como dice angel1993, sería más sencillo colocar un estado de ayuda o normal, sólo habría que agregar a los códigos que tengan el onclick la condición el enlace o acción de ayuda.
  #6 (permalink)  
Antiguo 14/05/2013, 06:30
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Deshabilitar todos los eventos onclick temporalmente

Me gusta esa opción y creo que es una forma correcta de hacerlo, lo malo es tener que cambiar todos los onclick que ya existen en todo el sitio para que tengan esa condición.

Gracias a todos por su ayuda! :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #7 (permalink)  
Antiguo 14/05/2013, 06:47
Avatar de angel1993  
Fecha de Ingreso: octubre-2009
Mensajes: 752
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Deshabilitar todos los eventos onclick temporalmente

Piensa que si el onclick llama a X función, puedes hacer la comprobación del estado dentro de la función en vez de fuera... será más cómodo.
__________________
@angelxab Twiiter
  #8 (permalink)  
Antiguo 14/05/2013, 09:25
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Deshabilitar todos los eventos onclick temporalmente

excelente idea! y yo que ya estaba pensando en cambiar todos los elementos XD

Gracias otra vez, tema solucionado :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: onclick
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 15:00.