2011-06-03 51 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