Foros del Web » Programando para Internet » Javascript »

agregar/remover eventos

Estas en el tema de agregar/remover eventos en el foro de Javascript en Foros del Web. Buenas a todos y gracias por leer. Disculpen que me enrrolle, juro que trataré de ser claro. Si bien uso varias tecnologías, mi problema es ...
  #1 (permalink)  
Antiguo 04/06/2009, 08:57
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
agregar/remover eventos

Buenas a todos y gracias por leer.
Disculpen que me enrrolle, juro que trataré de ser claro. Si bien uso varias tecnologías, mi problema es de javascript, así que por favor, los exlusivamente javascripteros lean hasta el final conozcan o no las otras tecnologías.
Les cuento mi problema: estoy terminando un desarrollo mediano que incluye distintas tecnologías web, pero ningún framework para javascipt (y a esta altura no pienso incorporarlo).
Básicamente el desarrollo lee datos de una BD y los grafica, de eso se encargan php, sql y jpgraph. Pero hay un menú a la izquierda que permite restricciones en la búsqueda y redibujar el gráfico. Para no tener que recargar toda la página (y volver a setear los valores del menú), cada vez que se modifica una restricción, se redibuja el gráfico en la parte derecha de la pantalla usando AJAX. Por ejemplo, si en el menú se setea una fecha mínima, se buscarán los datos para esta fecha y se redibujará el gráfico, de modo de que quede el gráfico correspondiente y en el menú de la izquierda siga apareciendo la fecha mínima ingresada. Hasta ahí todo perfecto; el problema es que también tengo un buscador, que devuelve una lista con los registros del resultset sql segun distintos criterios de búsqueda. Algunos de esos criterios son comunes con los del menú de la izquierda, la idea sería actualizar el menú de la izquierda en los campos que se comparten al ejecutar la búsqueda. Pero no sé cómo actualizarlos sin disparar los eventos que redibujan los gráficos, ya que si lo hago, no muestro el resultado de la búsqueda.
Se me ocurrió remover los eventos, actualizar el menú, y luego agregar de vuelta los eventos... estuve investigando al respecto y no sé cómo remover un evento que no se agregó mediante atachEvent/addEventListener (está "hardcodeado" en el HTML), ni cómo agregar y remover funciones que lleven parámetros. Como dije, el proyecto está muy avanzado así que no puedo modificar ahora drásticamente esas funciones.
¡Puf! creo que me extendí más de la cuenta. En síntesis (tengo la sensación de que soy muy poco claro):
Lo que necesito es remover un evento a distintos campos de un menú (cada campo lo llama con un parámetro diferente y el evento lo asigné mediante HTML), actualizar los campos del menú y luego volver a asignar los respectivos eventos a esos campos.
Agradezco de sobremanera todas las ayudas. Cualquier duda pregunten.
Gracias, dggluz.
  #2 (permalink)  
Antiguo 04/06/2009, 10:45
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: agregar/remover eventos

Fijate si te sirve este ejemplo sencillo:
Código PHP:
<!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>Documento sin t&iacute;tulo</title>
<
script>
function 
hacerAlgo(p){
    
alert(p);
}
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <input id="campo" type="text" name="textfield" onchange="hacerAlgo(123)" />
  <input type="button" name="Submit" value="remover" onclick="document.getElementById('campo').onchange=null;" />
  <input name="restituir" type="button" id="restituir" value="restituir" onclick="document.getElementById('campo').onchange=function(){hacerAlgo(123);}" />
</form>
</body>
</html> 
  #3 (permalink)  
Antiguo 04/06/2009, 11:41
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: agregar/remover eventos

Muchas gracias Panino, en un rato lo pruebo.

¿Por causalidad sos el mismo Panino que comenta en el foro de anieto2k? Estuve buscando info y di con esta pag http : / /www . anieto2k . com /2008/09/28 /crea-tu-propio-framework-javascript/ (no puedo poner links todavía).
  #4 (permalink)  
Antiguo 04/06/2009, 11:51
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: agregar/remover eventos

Sí, he puesto uno que otro comentario ;)
  #5 (permalink)  
Antiguo 04/06/2009, 12:26
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: agregar/remover eventos

Probé el equivalente a tu código en mi PC y funciona. Te agradezco muchísimo.
  #6 (permalink)  
Antiguo 04/06/2009, 12:30
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: agregar/remover eventos

Me alegra que te sirva ;)
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 04:31.