2011-06-03 58 views
2

我有兩個按鈕。現在我想讓vistor點擊button2,當點擊button1時,站點調用style2.css。援引style.css。默認顯示style.css有沒有辦法使用jquery更改css的鏈接路徑。使用jquery load diffent css?

<link rel="stylesheet" href="http://www.example.com/themes/style.css" type="text/css"/> 

如果點擊按鈕2,行更改爲< link rel="stylesheet" href="http://www.example.com/themes/style2.css" type="text/css"/>

或其他方式獲得的效果。謝謝

回答

2

在BUTTON2的onclick處理程序,做到這一點:

$('link').attr('href', 'http://www.example.com/themes/style2.css'); 

編輯:顯然,我需要指出的是,這會影響到所有的鏈接標籤,如果你有不止一個,所以用一個id爲您的選擇如果你有一個以上的鏈接,例如:

<link id="myLink".../> 

$('#myLink).attr('href',...); 
+1

這將改變文檔中每個鏈接標籤的'href'。 – rahul 2011-06-03 07:55:15

+0

是的。 @zhuanzhou,如果你有點困惑(我不認爲你會這樣),那麼你需要添加一個id到你的鏈接標籤,並使用它作爲你的jQuery選擇器,如果你有多個鏈接標籤。 – squidbe 2011-06-03 07:59:04

+0

你的方式很棒,但是如何將id僅添加到css鏈接標籤? – zhuanzhou 2011-06-03 08:01:45

1

您可以讓jQuery的改變/添加一個類你<body>元素。這確實意味着您必須在一個樣式表中包含所有樣式。

例如:

CSS:

.some-style  { color: #f00; } 
.blue .some-style { color: #00f; } 
.green .some-style { color: #0f0; } 

HTML:

<html> 
<body> 
    <p class="some-style">Some text</p> 
    <button id="btn-1">Blue</button> 
    <button id="btn-2">Green</button> 
</body> 
</html> 

的Javascript(簡體例如用途):

$('#btn-1').click(function() { 
    $('body').addClass('blue'); 
}); 

$('#btn-2').click(function() { 
    $('body').addClass('green'); 
}); 
+0

但這並不實際。實際上我不得不去做一些關於傳統的問題。當兩個樣式表之間存在許多差異很多的規則時,只需更改鏈接href即可。 – squidbe 2011-06-03 08:11:30

1

儘量把符合條件你的p HP代碼,像這樣:在這個基本理念這裏

<?if(buttonOneClicked()){?> 
<link rel="stylesheet" href="http://www.example.com/themes/style.css" type="text/css"/> 
<?}else{?> 
<link rel="stylesheet" href="http://www.example.com/themes/style2.css" type="text/css"/> 
<?}?> 
+0

我不知道這是什麼意思:if(buttonOneClicked())。你能解釋一下嗎?謝謝 – zhuanzhou 2011-06-03 07:58:05

+0

哦,我正在考慮一個以閱讀爲目的的函數,例如來自表單的POST字段,或者一些攜帶按鈕生成的變量的方法,或者僅僅是按鈕本身。它只是表示動作的函數。也許這會讓你想要的東西複雜化。 – elvenbyte 2011-06-03 08:00:58

+0

同時,我已經看到了jQuery的答案,我認爲這也是一個很好的答案。 – elvenbyte 2011-06-03 08:01:32