jQuery Crear Plugin

5 views
Skip to first unread message

Almacenamiento Almacenamiento

unread,
Aug 17, 2011, 7:15:27 PM8/17/11
to jquery-e...@googlegroups.com, jque...@googlegroups.com
Hola que tal, me presento soy nuevo en el grupo de jquery :) Saludos!

Bueno tenia cierta duda con la creacion de plugins en este framework de javascript...
Estuve leyendo varios plugins de jquery y estuve viendo que los hacen cada uno de distinta manera, pero no entiendo cuando hacerlo de esta y cuando hacerlo de esta otra xD

Varios crean un plugin de esta manera...
(function($){
   $.fn.extend({
  nombreFuncion=function(options){
//blabalbla
  }
})
})(jQuery);

Otros
(function($){
    $.fn.vtube=function(options){
        var settings={color: 'red', background: 'black'};
        if(options){ $.extend(settings, options); }
//blablablal
    };
})(jQuery);

A lo que voy es cuando usar directamente $.fn.extend({}), y cuando $.fn.nombrePlugin({ // extend })
Tengo ciertas dudas con respecto a la creacion de plugins si se dieron cuenta xD,
Lo que me confunde bastante es que c/u lo hace de distinta maneras, y quisiera saber si alguien me puede escribir las ditintas maneras que utds harian, grax..! :)

JONATHAN PEREIRA PACHECO

unread,
Aug 18, 2011, 4:28:49 PM8/18/11
to jquery-e...@googlegroups.com
existen varias formas de crear un plugins, 

hay que entender lo siguiente:

(function($){

//aqui va la deficicion del plugin

$.myPlugin = function (options){
alert('hola soy un plugin directo');
}

})(jQuery)

aqui lo que se hace es crear una funcion anonima, del objeto $ y decimos que se autoejecute con (jQuery)

dentro de esto tiene que ir nuestro plugin, dependiendo a que queremos aplicar ejemplo:

aqui estamos extendiendo directamente el objeto jquery. no aplicable a ningun objeto en particular. plugin podemos llamarlo desde un script de la siguiente forma:

//llamado
$.myPlugin();//no aplica a ningun objeto en especifico, solo se ejecuta





2º opcion:

$.fn.myPlugin = function(options){
var defaults = {
color : '#ff00ff'
}
var op = $.extend(defaults, options);//aqui combino las opciones por default, con las opciones pasadas en options, si es que existen y quedan todo esto asignado a una variable op.

return this.each(function(){//recorro cada uno de los objetos pasado a la funcion
//aqui va el codigo a ejecutar
alert($(this).attr('id'));//mostrara el id de cada objeto llamado.
})


}

//aca el llamado al script tiene que ser desde un objeto jquery, de la forma;


$('div').myPlugin();

//aqui estamos diciendo que busque todos los div y a este conjunto de div devueltos en un objeto jquery, le aplique  myPlugin() , retornando el id de cada uno de los div pasados.


te recomiendo usar $.fn.myPlugin, si solo decias crear un plugin separado, que es lo correcto en la mayoria de los casos. 

(function($){

$.fn.myPlugin = function(options){


}

})(jQuery)



ahora si deceas crear en un mismo archivo .js varios plugins extendiendo el objeto fn, osea para aplicar a un conjunto de jquery puedes usar 

$.fn.extend({

var plugin1 = function(options){

}

var plugin2 = function(options){


}

var plugin3 = function(options){

}



})


espero que hayas entendido...


Atte

Jonatan Pereira P.
Talca-Chile








--
Has recibido este mensaje porque estás suscrito al grupo "Jquery en español" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a jquery-e...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a jquery-en-espa...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/jquery-en-espanol?hl=es.

Almacenamiento Almacenamiento

unread,
Aug 18, 2011, 4:34:42 PM8/18/11
to jquery-e...@googlegroups.com
Ajam, y si en
(function($){
$.fn.myPlugin = function(options){
}
})(jQuery)

Quiero aplicar varias funciones, defino solamente una variable para la funcion, y dentro le ingreso la funcion a realizar,
y luego como la llamo desde el html a esa funcion?
Ej.
En el caso de un validador, que utilizo opciones comunes,
y dsp qiero agregar funciones para validar chars y demas.. o nose U.u

JONATHAN PEREIRA PACHECO

unread,
Aug 18, 2011, 4:53:14 PM8/18/11
to jquery-e...@googlegroups.com
seria de la siguiente forma:

(function($){
$.fn.myPlugin1 = function(options){
var defaults = {

};
op = $.extend(defaults, options);
 return this.each(function() {

})

}

$.fn.myPlugin2 = function(options){
var defaults = {

};
op = $.extend(defaults, options);
 return this.each(function() {

})

}

$.fn.myPlugin3 = function(options){
var defaults = {

};
op = $.extend(defaults, options);
 return this.each(function() {//devuelvo y recorro cada objeto

})

}

})(jQuery)

//recuerda siempre que el plugin debe retornar un objeto jquery, ademas que debes recorrer cada objeto.


y para llamarlas es:

$(selector).myPlugin1()

$(selector).myPlugin2()  


si necesitas ayuda puedes explicar mas precisamente lo que necesitas:


Almacenamiento Almacenamiento

unread,
Aug 18, 2011, 4:59:59 PM8/18/11
to jquery-e...@googlegroups.com
uh xD q complicado parece D:
Me confunde avcs :B

Che..! 1preg, como es bn el tema del extend..?
Porque yo ej.
Qiero darle un valor default, como seria?
$.fn.nombre(options){
settings={'color':'red', 'type':'text'};
  if(!options){
$.extend(settings, options);
  }
}

Si me das un par de ejemplos de eso, tmb me vendria de 10, xq ultimamente estuve intentando practicar pero me confundia bastante U.u
y eso que estuve leyendo varios plugins..

Che por cierto otra preg.
Hay alguns q directamente no le mandan opciones a la funcion en (options),
como seria tmb si qisiera configurar el plugin desde fuera del plugin como hacen alguns tmb...

:B eso y na mas :$ GRAXX!! :D me tas haciendo un gran favor xD

Reply all
Reply to author
Forward
0 new messages