Foros del Web » Programando para Internet » Jquery »

Acceder a variable encapsulada desde plugin jquery

Estas en el tema de Acceder a variable encapsulada desde plugin jquery en el foro de Jquery en Foros del Web. Hola, siempre he programado javascript de la vieja escuela, y no estoy nada acostumbrado al javascript actual (no intrusivo, encapsulado, usando objetos para todo, etc). ...
  #1 (permalink)  
Antiguo 29/11/2012, 03:40
Avatar de Mikimoto74  
Fecha de Ingreso: enero-2005
Mensajes: 88
Antigüedad: 19 años, 11 meses
Puntos: 2
Acceder a variable encapsulada desde plugin jquery

Hola,

siempre he programado javascript de la vieja escuela, y no estoy nada acostumbrado al javascript actual (no intrusivo, encapsulado, usando objetos para todo, etc). Así que perdonadme si lo que quiero resulta ser una tontería.

Lo que quiero es lo siguiente:

Estoy usando un plugin de jQuery llamado Flexigrid para crear grids de listados de items. Bueno, no me meto mucho en este tema. Simplemente que en la configuración del plugin, tengo los botones "Añadir", "Editar" y "borrar" de esta manera (sólo fijaros en los callbacks de eventos):

Código PHP:
$(document).ready(function() {
     $(
'#listado').flexigrid({
          
//propiedades
          
.....
          
buttons : [
            {
name'Añadir'bclass'add'onpress post.add()},
            {
name'Editar'bclass'edit'onpress post.edit()},
            {
name'Borrar'bclass'delete'onpress post.del()},
            {
separatortrue}
          ]
     });

Por otro lado, me gustaría saber si puedo definir los manejadores de onpress de forma queden encapsuladas. Algo como esto:

Código PHP:
(function($) {
    var 
post = {
        
add: function() {
            
alert('añadir');
        },
        
edit: function() {
            
alert('editar');
        },
        
del: function() {
            
alert('borrar');
        }
    }
})(
jQuery); 
Evidentemente, las llamadas de onpress no van a funcionar porque la variable post está encapsulada. Cómo se suelen solventar este tipo de situaciones si quiero conservar mis variables encapsuladas? La solución más evidente que seguramente me diríais es meter ambos códigos en la misma closure. El problema es que el primer fragmento necesito tenerlo separado del segundo porque el primero depende de variables PHP y lo lanzo desde una plantilla, mientras el segundo está en un fichero js.

Etiquetas: closures, encapsulacion, plugin
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 12:47.