如何使用jQuery在特定的CSS文件之间切换?

时间:2016-03-02 19:13:06

标签: javascript jquery css

为了切换主题,我使用下面的脚本放置一个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.csscustom_bootstrap.csscustom_cerulean.csscustom_cosmo.css

不应更改所有其他CSS文件。现在的情况是它禁用所有其他CSS文件。 如何使用我的脚本实现这一目标?

1 个答案:

答案 0 :(得分:0)

问题并不完全清楚,但我猜你有几个

`<link href="....`
页面上的

元素?一个包含您要切换值的那个,还有一些不应该更改?

如果是这样,那么我认为你的问题是你的jQuery选择器正在选择所有&#34;链接&#34;您网页上的元素,并将所有网址中的网址修改为同一内容:

$("link").attr("href",$(this).attr('rel'));

相反,您需要选择要更改的链接的特定ID,如下所示:

$("#SwitchLink").attr("href",$(this).attr('rel'));

其中SwitchLink是特定<link>元素的ID