Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   [Autobombo DEC] Plugin StyleSwichter para jQuery (https://www.clubdelphi.com/foros/showthread.php?t=55552)

dec 20-04-2008 06:21:17

[Autobombo DEC] Plugin StyleSwichter para jQuery
 
Hola,

Sé que por aquí tiene que haber admiradores de jQuery, no puede ser de otro modo, porque esta librería (¿o era biblioteca?) de JavaScript es admirable. Vamos, que viva la madre que parió al autor, podría decirse. Pues bien, que he escrito un sencillo plugin para jQuery de que quería informar por aquí, por si puede resultar de utilidad a alguien. ¡Y ya de paso podemos charlar un poco si queréis! :p

El plugin lo he llamado en un alarde de originalidad sin precedentes "StyleSwichter", y, puede usarse para cambiar una (o más) hojas de estilo de una página web. Su funcionamiento es muy sencillo: usando la función "DOM ready!" de jQuery, se pone en marcha el plugin, y después puede usarse otra de las funciones de este para establecer una determinada hoja de estilo.

Como veo que me lío y que más vale un ejemplo que ciento volando, aquí van ya una serie de enlaces sobre el plugin, para que podáis descargarlo, probarlo, y lo que queráis:

- Ejemplo "en línea" del plugin

- Descarga directa del plugin + jQuery

- Página de mi bitácora dedicada al plugin

- Página del plugin Pass Meter en jQuery.com

PD. Algunos llaman SPAM al autobombo. Pero yo no soy de esos. ¿O sí? :eek: :p

PD2. No; no has tenido un "deja vu", anuncié aquí también el plugin Pass Meter para jQuery. :D

dec 20-04-2008 18:17:39

Hola,

Me levanto y me pongo con el plugin, de modo que me doy cuenta de algo que he soñado esta noche: no hacía falta, en realidad, una de las funciones, de hecho el plugin puede hacer su trabajo con una sola función. Y así es como queda el plugin ahora mismo, copio aquí el código fuente, por si alguien está interesado... que lo dudo. :D :D

Código PHP:

(function($){

  $.
fn.StyleSwichter = function(options){
    var 
opts = $.extend({}, $.fn.StyleSwichter.defaultsoptions);
    var 
= $.meta ? $.extend({}, opts$this.data()) : opts;
    $(
'link').each(function(i){
      if(
this.rel == 'stylesheet' && this.title == o.linkTitle){
        if(
o.cssPath != ''){
          
this.href o.cssPath;
          $.
cookie(o.cookieName,this.href,{
            
patho.cookiePath,
            
expireso.cookieDays,
            
domaino.cookieDomain,
            
secureo.cookieSecure
          
});
        }else if($.
cookie(o.cookieName)){
          
this.href = $.cookie(o.cookieName);
        }
        return 
true;
      }
    });
    return 
false;
  };
  
  $.
fn.StyleSwichter.defaults={
    
cssPath'',
    
cookiePath'',
    
cookieDays30,
    
cookieDomain'',
    
cookieSecurefalse,
    
linkTitle'styleswichter',
    
cookieName'selected-style'
  
};
  
})(
jQuery); 

Esto reduce también el tamaño del plugin, que, comprimido, queda en unos 600 bytes. ;)

ArdiIIa 20-04-2008 18:28:01

Ya lo comentaron en un par de hilos en el foro, pero lo vuelvo a comentar yo....

Llegaste a ver las MooTools. ?

dec 20-04-2008 18:32:01

Hola,

Hum... MooTools... Quien hable de MooTools es que no conoce jQuery. :D :D :D :D

PD. En serio. Echaré un vistazo a las MooTools, pero, jQuery es mucha jQuery... :)

ArdiIIa 20-04-2008 19:08:04

Cita:

Empezado por dec (Mensaje 281281)
Hola,
PD. En serio. Echaré un vistazo a las MooTools, pero, jQuery es mucha jQuery... :)

Aunque solamente sea a las demos....:)

dec 20-04-2008 19:15:23

Hola,

No; si, sí, si ya lo sé... :D :D :D :D

ArdiIIa 21-04-2008 03:54:57

Mira, te pongo aquí un par de proyectos que utilizan ambos, por aquello de abarcar la mayor compatibilidad:

http://www.joomlaworks.gr/

Emilio 21-04-2008 07:19:14

Pues tendremos que empezar a tener en cuenta jQuery dada la insistencia de David en hacer plugins para ella, en cuanto a StyleSwitcher, (creo que así es como querías llamarle) no veo la necesidad de depender de jQuery para cargar otra hoja de estilo y eso es lo que me intriga del asunto ¿cual es el motivo?

dec 21-04-2008 08:29:16

Hola,

Ojo. Que no digo que Mootools esté mal o algo así. Sólo que cuando conocí jQuery la tomé cariño enseguida, por decirlo así, me enamoré. Y ahora es complicado elegir otra cosa, incluso aunque fuera "mejor", que, por otro lado, creo que no lo es. ;) :D

Respecto de la necesidad de usar jQuery para cargar otra hoja de estilo... no. Efectivamente, no es necesario. Pero hay que verlo desde el otro punto de vista, es decir, desde el punto de vista de alguien que ya está usando jQuery. Entonces merecerá la pena usar el plugin (si se quiere, vaya), incluso porque resulta más pequeño que otras soluciones.

No se trata de usar jQuery por usar el plugin, solamente, sino que, suponiendo que uno usa jQuery, usar sus plugins es lo "natural", por decirlo así. Porque, a fin de cuentas, todo lo que hace jQuery se puede hacer sin jQuery, pero, no se trata de eso, ¿verdad? Las cookies, por ejemplo. Se pueden manejar sin jQuery, claro, pero, existe un plugin de jQuery para manejar cookies, así que lo usamos.

Primero, porque es más sencillo que hacerlo sin él, y segundo porque ya se asume que se usa jQuery. Por otro lado, jQuery es "una nueva forma de escribir JavaScript", y que pesa (empaquetada) menos de 30 KB. Los 30 KB mejor desarrollados que he visto en mucho tiempo. ¡Si no existiera jQuery habría que inventarla! En serio, ¡no la probéis! Si no queréis caer en sus garras. :D :D

dec 23-04-2008 13:46:13

Hola,

Je je je je... Arigato! :) ;) :D

Ñuño Martínez 23-04-2008 16:47:19

:eek: :eek: :eek:

Espera... ¿pero hablan bien o hablan mal de él? :rolleyes: :D

dec 23-04-2008 16:50:07

Hola,

Pues parece (en inglés) que no hablan ni mal ni bien... simplemente lo refieren y enlazan.

Pero, vamos, que hablen de uno, aunque sea mal. ¡Sobre todo si es en japonés! :D :D :D


La franja horaria es GMT +2. Ahora son las 05:23:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi