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

Responder a