Muchas veces escribí en este blog sobre plugins para jQuery pero, ¿cómo se crea uno de estos componentes?
Este tutorial muestra como construir los bloques básicos de un plugin jQuery y cómo usarlo en una página HTML.
Introducción
En este tutorial vamos a crear una página HTML y le vamos a configurar el color, fondo, alto y ancho de las propiedades de estilo del CSS de un DIV por medio de un plugin jQuery.
Crear el HTML de la página
Primero creamos al HTML de la página:
<!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=iso-8859-1" /> <title>Tutorial jQuery - Cómo crear un plugin</title> </head> <body> <div> <p>El color, fondo, alto y ancho son configurado por el plugin jQuery.</p> </div> </body> </html>
Comenzando con jQuery
Primero enlazamos en la sección HEAD del HTML de la página la biblioteca jQuery:
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
Luego escribimos un código para hacerle saber que el script no debe activarse hasta que el documento esté cargado:
<script type="text/javascript"> $(document).ready(function(){ }); </script>
Ahora escribimos el código que asigna los valores a las propiedades CSS de nuestro DIV. Primero llamamos el DIV, como es el único DIV usamos $(div) en vez de llamarlos por la class o el id.
$(div).css({ color : 'white', background : 'blue', width : 400, height : 100, });
En este momento nuestro archivo HTML debría lucir como el siguiente código:
<!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=iso-8859-1" /> <title>Tutorial jQuery - Cómo crear un plugin</title> <script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $(div).css({ color : 'white', background : 'blue', width : 400, height : 100, }); }); </script> </head> <body> <div> <p>El color, fondo, alto y ancho son configurado por el plugin jQuery.</p> </div> </body> </html>
Al abrirlo en el navegador, deberíamos ver algo como la imagen que sigue:
Construir el plugin
Ya tenemos el HTML con jQuery y un script, ahora vamos a comenzar a construir el plugin.
Primero creamos un nuevo archivo que lo llamaremos jQuery.firstplugin.js. La documentación de jQuery sugiere que todos los plugins deben ser llamados con de la forma jquery.plugin-name.js.
La primera parte del plugin es la definición de la función y darle el nombre que usaremos en la página HTML. También configuraremos las variable options para controlar la función.
$.fn.makeDiv = function(options) {//configuramos la función y le damos nombre
};
El nombre del plugin en este caso es makeDiv. Ahora lo siguiente es asignarle los valores iniciales. En este ejemplo vamos a configurar las propiedades CSS que el usuario del plugin también puede cambiar.
settings = $.extend({//valores iniciales de las propiedades color : 'white', background : 'blue', width : 400, height : 100, }, options);
El método .extend nos permite cambiar los valores iniciales (por defecto) cuando llamamos la función makeDiv en el HTML de la página. Ahora que ya tenemos las inicializadas las variables tenemos que decirle a la función del plugin que hacer con ellas. Para hacer esto tenemos que hacer algunos arreglos para que funcione dentro del plugin. Primero tenemos que escribir un código que afecte al elemento que seleccionamos cuando llamamos a la función makeDiv. Para hacer esto cambiamos $(’div’) a $(this). Ahora tenemos que cambiar los valores de la variable, para hacer esto usamos settings.value:
$(this).css({//las propiedades CSS el elemento seleccionado color : settings.color, background: settings.background, width : settings.width, height : settings.height });
Ahora combinamos todo en el archivo que creamos para el plugin el cual debería verse como el siguiente código:
$.fn.makeDiv = function(options) {//set up the function and give it a name settings = $.extend({//set the default values for the options color : 'white', background : 'blue', width : 400, height : 100, }, options); $(this).css({//set the css properties of the selected element color : settings.color, background: settings.background, width : settings.width, height : settings.height }); };
Ahora enlazamos el plugin en la sección HEAD del HTML:
<script type="text/javascript" src="jquery.firstplugin.js"></script>
Agregamos un script para seleccionar el DIV y usar las función makeDiv en dicho DIV, veremos por primera vez en acción el plugin, en este caso cambiaremos el valor del fondo a verde, el color a negro, la altura a 200 y el ancho a 50.
<script> $(document).ready(function(){ $('div').click(function(){ $('div').makeDiv({ background: 'green', color: 'black', height: 200, width: 50 }); }); }); </script>
Tutorial jQuery – Cómo crear un plugin
Este tutorial está basado en el post jQuery Plugin Tutorial que fue publicado por el sitio The Web Squeeze.
Nota y conclusión final
Este tutorial es una traducción libre del publicaod por The Web Squeeze que decidí hacer porque nunca antes había leído sobre como crear un plugin para jQeury y me pareció muy bien explicado y fácil. Creo que se trata de un buen ejemplo que resultará más que útil para todos aquellos que siguen las implementaciones con jQuery de las que hablo habitualmente.