2010-11-08 6 views
1

ceci est ma simple fonction javascript pour changer de couleur et il fonctionne très bien, mais pour autant que je dois permettre jquery ou Mootools dans mon site alors son mieux d'avoir cette fonction moderniséeswitcher couleur Mootools OU jquery

function changeThemeColor(color) 
{ 
    switch(color) 
    { 
     case "style1": 
     default: 
      document.getElementById('CSSfile').href = 'css/style1.css'; 
      setCookie('ThemeColor','style1',7); 
      break; 
     case "style2": 
      document.getElementById('CSSfile').href = 'css/style2.css'; 
      setCookie('ThemeColor','style6',7); 
      break; 
    } 
} 

Je sais que ce peut-être une énorme quête mais je vraiment besoin de convertir ce code soit en jquery ou Mootools

+0

Qu'entendez-vous par modernisé? – user113716

+0

hey patrick, j'ai juste besoin de savoir comment écrire ces fonctions dans mootools ou jquery et baser mes codes de projet sur ces frameworks –

+0

À moins qu'il y ait des problèmes de cross-browser avec votre code, ou vous avez juste besoin de réduire les caractères dans un très long morceau de code, je ne sais pas pourquoi vous voudriez le ralentir avec une bibliothèque. – user113716

Répondre

1

d'un cookie Si votre code fonctionne, pourquoi lent, il se downconversion en code bibliothèque qui va juste reconvertir ce que vous avez?

Si c'est en fait ce que votre code ressemble, vous pouvez vous débarrasser de quelques-uns de la redondance:

function changeThemeColor(color) { 
    document.getElementById('CSSfile').href = 'css/' + color + '.css'; 
    switch(color) { 
     case "style1": 
     default: 
      setCookie('ThemeColor','style1',7); 
      break; 
     case "style2": 
      setCookie('ThemeColor','style6',7); 
      break; 
    } 
} 

Le style2 est l'envoi 'style6' à setCookie(). Si c'est une erreur, et il devrait envoyer 'style2', vous pourriez réduire davantage.

function changeThemeColor(color) { 
    document.getElementById('CSSfile').href = 'css/' + color + '.css'; 
    setCookie('ThemeColor', color, 7); 
} 
+0

wow votre dieu !!; la version minifiée de mon script est si belle. Je vais l'utiliser. merci –

+0

@Mac Taylor - De rien. – user113716

+0

sauf qu'il écrit style6.css pour style2 param ... d'où le commutateur :) –

1

pour MooTools:

function changeThemeColor(color) 
{ 
    switch(color) 
    { 
     case "style1": 
     default: 
      $('CSSfile').set('href','css/style1.css'); 
      Cookie.write('ThemeColor','style1',{'duration':7}); 
      break; 
     case "style2": 
      $('CSSfile').set('href','css/style2.css'); 
      Cookie.write('ThemeColor','style6',{'duration':7}); 
      break; 
    } 
} 

Comme vous pouvez le voir, les modifications sont si Je n'aurais même pas pris la peine de les implémenter si j'étais toi. Cela ne va pas non plus rendre votre site plus pérenne.

1

Si vous souhaitez utiliser jQuery changer cette

document.getElementById('CSSfile').href = 'css/style1.css'; 

à

$("#CSSfile").attr("href",'css/style1.css'); 

et si vous voulez changer la couleur d'un div est

$("#divId").css("color","#f0f0f0") 

Désolé pour mon anglais , je viens d'Argentine

modifier: http://plugins.jquery.com/project/Cookie Ici vous avez plugin jQuery

1

pour Mootools (ou bien, jquery) Je voudrais créer une carte de styles au lieu et faire quelque chose comme ceci:

var changeThemeColor = function(colour) { 
    var colours = { // set your mapping here. 
     style1: "style1", 
     style2: "style6" 
    }, style = colours[colour] || colours['style1']; // default to style1 if not mapped 

    document.id("CSSfile").set("href", "css/"+style+ ".css"); 
    Cookie.write("ThemeColor", style, { 
     duration: 7, 
     path: "/" 
    }); 
}; 

essayant de le rendre plus modulaire/modèle à base de sorte qu'il peut facilement soutenir l'ajout de nouveaux styles dans le futur. le meilleur moyen est d'avoir ceci via un options var comme deuxième argument où vous pouvez écraser (de l'extérieur) le mappage par défaut et en interne, faites Object.merge().