为了切换主题,我使用下面的脚本放置一个cookie并选择一个特定的CSS文件。
if($.cookie("css")) {
$("link").attr("href",$.cookie("css"));
}
$(document).ready(function() {
$("#layout li a").click(function() {
$("link").attr("href",$(this).attr('rel'));
$.cookie("css",$(this).attr('rel'), {expires: 365, path: '/'});
return false;
});
});
结合这些链接:
<ul id="layout" class="PanelInfo">
<li><a href="#" rel="/themes/bootstrap/design/style.css">Default style</a></li>
<li><a href="#" rel="/themes/bootstrap/design/custom_bootstrap.css">Bootstrap</a></li>
<li><a href="#" rel="/themes/bootstrap/design/custom_cerulean.css">Cerulean</a></li>
<li><a href="#" rel="/themes/bootstrap/design/custom_cosmo.css">Cosmo</a></li>
</ul>
问题是它根本只加载一个CSS文件。它应该只切换几个CSS文件,让我们说:
style.css
,custom_bootstrap.css
,custom_cerulean.css
和custom_cosmo.css
不应更改所有其他CSS文件。现在的情况是它禁用所有其他CSS文件。 如何使用我的脚本实现这一目标?
答案 0 :(得分:0)
问题并不完全清楚,但我猜你有几个
`<link href="....`
页面上的元素?一个包含您要切换值的那个,还有一些不应该更改?
如果是这样,那么我认为你的问题是你的jQuery选择器正在选择所有&#34;链接&#34;您网页上的元素,并将所有网址中的网址修改为同一内容:
$("link").attr("href",$(this).attr('rel'));
相反,您需要选择要更改的链接的特定ID,如下所示:
$("#SwitchLink").attr("href",$(this).attr('rel'));
其中SwitchLink是特定<link>
元素的ID