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

标签 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 文件。 如何使用我的脚本实现此目的?

最佳答案

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

`<link href="....`

页面上的元素?其中包含您要切换值的值,以及其他一些不应该更改的值?

如果是这样,那么我认为你的问题是你的 jQuery 选择器选择了页面上的所有“链接”元素,并将所有这些元素中的 URL 修改为相同的内容:

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

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

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

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

关于javascript - 如何使用 jQuery 在特定 CSS 文件之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35756106/

相关文章:

javascript - 指定要在特定页面上使用的指令的 Controller

javascript - 如何对除最后一个之外的所有 <li> 实现添加/删除类?

jquery - 如何使 Laravel 中的动态表单字段可填写

javascript - 为什么 Webpack 5 没有 CSS 文件输出?

jquery - 删除表中除带有 <th> 标记的行之外的所有行

jquery - 有没有办法在循环中使用 jQuery 的 deferred/promise/when/then 功能来进行多个 ajax 调用?

javascript - 段落中的长字符串,不打断完整字符

javascript - 设置元素的 margin-left 和 width 以匹配另一个元素的 margin 和 size

javascript - 关于 HTML 表单的查询

javascript - 类型错误 : undefined is not an object (evaluating '_reactNative.Image.propTypes.resizeMode' )