2011-10-21 16 views
41

Üzerinde çalıştığım şey basit.CSS stil sayfamı jQuery kullanarak nasıl değiştirebilirim?

Bir düğmeye tıkladığınızda (id="themes") tıklatınız ve temaları listeleyen bir slayt (id="themedrop") açar. site style1.css (ana/orijinal teması) ile Şimdi

<link rel="stylesheet" type="text/css" href="style1.css"> 

yükler yüklendiğinde Şimdi zaman

<button id="original">Original</button><br /> 
<button id="grayscale">Grayscale</button> 

(Ben sadece bu noktada iki tane var) Ben anlamaya çalıştığım şey ... Stil sayfasını stil1.css'den style2.css'ye değiştirmek için gri tonlama düğmesi tıklandığında (not: dosyalar aynı dizinde) bunu nasıl alabilirim?

Herhangi bir yardım çok takdir edilecektir.

cevap

60
$('#grayscale').click(function(){ 
    $('link[href="style1.css"]').attr('href','style2.css'); 
}); 
$('#original').click(function(){ 
    $('link[href="style2.css"]').attr('href','style1.css'); 
}); 

Bunu deneyin, ancak çalışamayacağından emin değilim, test etmedim ama gd luck.

+3

Teşekkürler (modifiye versiyonu): --- $ ("düğmesi # gri tonlama") tıklayın (function() { \t $ ("link [rel = stylesheet]") attr.. ({href: "style2.css"}); }); –

+0

evet haklısınız, 'attr ('href')' lol, üzgünüm, btw seçicinin önündeki düğmelere gerek yok, kimlikler kimliğe göre benzersiz olmalı ve çift ID'lere sahip olmamalıdır. bu yüzden neden dersler kullanıyoruz :) – Val

+1

Güzel cevap. Sadece 2 çeşit ile ilgileniyorsa. 3 stil sayfası için çalışmayacak. – Jay

24

link-etiketini tema gibi bir kimlik vermenizi öneririm.

Html: Her iki düğmesinden data -attribute içinde css dosyasının adını koyun ve üzerlerinde aynı işleyicisi kullanmak

<link id="theme" rel="stylesheet" href="style1.css"> 

<button id="grayscale" data-theme="style2.css">Gray Theme</button> 

Ve js: için

$("button[data-theme]").click(function() { 
    $("head link#theme").attr("href", $(this).data("theme")); 
} 
8

hızlı bir şekilde

<link id="original" rel="stylesheet" type="text/css" href="style1.css"> 
<script> 
function turnGrey(){ 
document.getElementById("original").href="grey.css";<!-- what ever your new css file is called--> 
} 
</script> 
<button id="grey" onclick="turnGrey">Turn Grey</button><br /> 
3

kullanımı, öyle yapmak bu:

Bu bana yardım etti
<link href="Custom.css" rel="stylesheet" /> 
<link href="Blue.css" rel="stylesheet" /> 
<link href="Red.css" rel="stylesheet" /> 
<link href="Yellow.css" rel="stylesheet" /> 



<select id="changeCss"`enter code here`> 
     <option onclick="selectCss(this)" value="Blue">Blue</option> 
     <option onclick="selectCss(this)" value="Red">Red</option> 
     <option onclick="selectCss(this)" value="Yellow">Yellow</option> 
    </select> 

<script type="text/javacript"> 
function selectCss() { 
      var link = $("link[rel=stylesheet]")[0].href; 
      var css = link.substring(link.lastIndexOf('/') + 1, link.length) 
      $('link[href="' + css + '"]').attr('href', $('#changeCss').val() + '.css'); 
     } 
</script> 
İlgili konular