prueba este documento: http://jibbering.com/faq/faq_notes/closures.html
Este ultimo merece la pena mirarselo, aunque es un poco duro. Pero si lo entiendes se acaban tus problemas con esto. Y la libreria prototype usa esta estrategia para el sistema de eventos. También se puede mirar el codigo. Saludos. Gonzalo Lopez Fernando G.M. wrote: >Uf, casi nada. Esto no se me habría ocurrido a mi en la vida. Todavía >no he conseguido hacerlo funcionar, pero le veo posibilidades. > >¿Si no es mucho pedir, Gonzalo (u otro), podeis recomendarme algún >libro/recurso de JS donde se comenten técnicas de este tipo y nivel? O >al menos una referencia razonablemente completa del lenguaje o del >estandar. Algo un poquito más agradable al paladar (y cercano a la >realidad) que los pdf de >http://www.ecma-international.org/publications/index.html al menos :). > >On 6/20/06, Gonzalo López <[EMAIL PROTECTED]> wrote: > > >>Si no he entendido mal, tu problema es que la funcion a la que llama el >>"onclick" debe tener referencias a los controles que van asociados a el. >>Yo probaría una función que GENERE FUNCIONES ANONIMAS (closures), y que >>admita como parametros los parametros que necesite tener la función del >>onclick. >> >>function generarFuncionAnonima (objeto, funcionOnClick, argumento1, >>argumento2) { >> return function(e) { >> return funcionOnClick.call(obj, e, argumento1, argumento2); >> } >>} >> >>// ahora genero el primer boton, y la primera closure. >>boton1= [lo que uses para crear boton]; >>// crear los demas controles (referenciaAlControl1, referenciaAlControl2) >>onClickBoton1 = generarFuncionAnonima(boton1, testclk, >>referenciaAlControl1, referenciaAlControl2); >> >>boton1.attachEvent("onclick", onClickBoton1); >> >>// y el resto... >>boton2= [lo que uses para crear boton]; >> >>onClickBoton2 = generarFuncionAnonima(boton2, testclk, referenciaAlControl3, >>referenciaAlControl4); >>// crear los demas controles (referenciaAlControl3, referenciaAlControl4) >> >>boton2.attachEvent("onclick", onClickBoton2); >> >> >> >>De esta forma, cuando se ejecuta la funcion testclk, tiene acceso a los >>argumentos referenciaAlControl1, referenciaAlControl2. >>Esta tecnica se usa en las librerias de eventos. Lógicamente requiere conocer >>de antemano los parametros que quedarán "encerrados" en las llamadas a >>testclk. >> >> >>Suerte. >> >>Gonzalo López. >> >> >> >> >> >>Fernando G.M. wrote >> >> >... > > >>>El problema es que en el momento en que tengo varios sets de >>>diagnostico, necesito pasar parametros a las funciones javascript que >>>estan asignadas a los eventos onChange (del campo código) y onClick >>>(del botón que despliega el popup, que va incluido en el set de 3 >>>campos). Necesito una referencia que de algún modo me permita alcanzar >>>los otros campos del mismo set en el que ha ocurrido el evento, y no >>>sé como hacerlo. >>> >>>Hasta ahora, lo que hacía en el momento de crear los elementos era >>>utilizar código del siguiente estilo: >>> >>> >... > > _______________________________________________ javaEScript mailing list [email protected] http://lists.scriptia.net/listinfo.cgi/javaescript-scriptia.net
