【问题标题】:How to change stylesheet with Jquery and Django如何使用 Jquery 和 Django 更改样式表
【发布时间】:2017-08-17 21:03:46
【问题描述】:

您好,我已经尝试解决这个问题很长一段时间了。当我使用 vanilla html 时,这段代码似乎可以工作。 (从平铺视图更改为列表视图)。现在我已经将它合并到 django 并且 hrefs 包含静态标签,我不知道如何在 jquery 中引用它并更改它的 href。请帮忙

HTML

<link rel="stylesheet" type="text/css" href="{% static "Stylesheets/tileVersion.css"  %}">

我想改成这个css href

<link rel="stylesheet" href="../Stylesheets/listVersion.css">

JQUERY

$('#listicon').click(function () {
        $('link[href="static/Stylesheets/tileVersion.css"]').attr('href', 'static/Stylesheets/listVersion.css');
    });
    $('#tilesicon').click(function () {
        $('link[href="static/Stylesheets/listVersion.css"]').attr('href', 'static/Stylesheets/tileVersion.css');
    });

如果可能的话,我希望能够在它们之间切换。任何形式的帮助将不胜感激

【问题讨论】:

    标签: javascript jquery html css django


    【解决方案1】:

    你可以做两件事之一。

    1. 通过在代码中使用 if 标记从变量或数据源获取 css 链接值(地址/url),您可以使用静态引用将一个 CSS 文件加载到另一个文件上。这在服务器时间编译。这也意味着在运行时只加载一个 css。这对客户端来说是静态的。例如:

    2. 与 #1 相同,但您可以使用内联 if 来确定将哪一个转发给客户端。

    3. 最后,确保两个 css 文件都保存在静态进程中,并维护您的 jquery: $('#listicon').click(function () { $('link[href="{% static /path/to/first/css/page %}"]').attr('href', '{% static /path/to/first/css/page %}'); }); $('#tilesicon').click(function () { $('link[href="{% static /path/to/second/css/page %}"]').attr('href', {% static /path/to/second/css/page %}); }); 我是出于记忆而输入的,所以请多多包涵。 希望这会有所帮助。

    【讨论】:

    • 谢谢!我明天会试试这个,但我认为它会工作。一整天的编码很累
    【解决方案2】:

    只需为链接标签添加一个附加属性id。您可以从head 中删除当前的stylesheet 并添加另一个。

    <link rel="stylesheet" id="myid" href="../Stylesheets/listVersion.css">
    
    $('#myid').remove();
    $('head').append( $( '<link/>', {'rel' : 'stylesheet', 'id': 'myid', 'href':'newlink' } ));
    

    【讨论】:

    • 您好!我明白你想说什么,但我如何在 django 中同时加载它们,但在客户端只显示 1?
    • 您只需要加载一个。该文件由服务器提供。你加载其中之一。静态文件始终可供公众使用。无论您在 django 模板中加载哪一个,所有静态文件都有自己的 url,您可以随时访问它们。您可以在 之间更改 href 属性。
    • @Jason 如果浏览器在 href 属性更改时未获取新的 css 文件,请告诉我。我们有一个替代方案。
    • 是的,不幸的是它不起作用。它全部在我的 django 中的一个静态文件夹中,但如果我同时包含它们,它们只会重叠
    • 你的意思是有同名的类?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2019-01-06
    • 2011-08-21
    • 2013-07-20
    • 1970-01-01
    • 2019-07-23
    • 2021-02-27
    相关资源
    最近更新 更多