jquery - 链接在加载后保持粗体

标签 jquery css django

我有一个导航栏,我希望在新页面重新加载后单击的链接保持粗体。我正在使用 CSS django 使用动态 CSS 静态文件。我还使用 Jquery 来制作“大胆”。当我使用 PreventDefault() 时,代码确实有效(但当然它会阻止链接加载)。新页面加载后,它会不断恢复到旧的 CSS(不是粗体)。

$(document).ready(function(){
    $('nav ul li a').click(function(){
        $(this).addClass('boldlist');
        $(this).siblings().removeClass('boldlist');
        alert('clicked');   
    })

});

不确定如何解决这个问题..有什么建议吗?

编辑:我试图将链接加粗,以便用户知道他/她在该页面上。用户想要点击“add run”链接..(一瞬间,add run 变成粗体)..但是当它实际加载到 add run 页面时.. CSS 恢复回来(没有粗体)。

就像上面列出的 stackoverflow 问题标签用户徽章一样。如果单击它,它会突出显示以区别于其他按钮。

编辑:我认为在加载新页面时,CSS 文件不会与 Jquery 修改一起保存。

<!DOCTYPE html>
{% load static %}
<html>
<head>
    <meta charset="utf-8">
    <title>RunLog {% block title %}  {% endblock title %}</title>
    <link rel="stylesheet" href="{% static "css/base.css" %}"/>
     <!-- CSS -->
    <script src="{% static "js/jquery.min.js" %}"></script>
    <script src="{% static "js/base.js" %}"></script>
</head> 
<body>

    <div class="container">
        <div class='user'>
            {% if user.username %}
            <h3> runner: {{ user.username }}</h3>
            {% endif %}
        </div>
        <div class="logo"> <h1> runLog </h1></div> 
    <nav>
        <ul>
        {% if user.is_authenticated %}
            <li><a href="{% url 'index' %}"> Home</a></li>
            <li><a href="{% url 'add_run' %}"> Add Run </a></li>
            <li><a href="{% url 'getmonthavg' %}"> Month Rate</a></li>
            <li><a href="{% url 'getweekavg' %}"> Week Rate</a></li>    
            <li><a href="{% url 'logout' %}">Logout</a></li>
        {% else %}
            <li><a href="{% url 'register' %}"> Register </a></li>
            <li><a href="{% url 'login' %}"> Login </a></li>
        {% endif %}
        </ul>
    </nav>


    {% block body %}{% endblock body %}
    <div>
</body>

</html>

已解决:使用了大家的部分解决方案。我必须删除浏览器的 cookie 才能使代码正常工作......似乎是罪魁祸首。

最佳答案

另一个建议:页面名称是在模板中的某个位置还是在 div 中的某个位置?如果是这样,你可以用它来设置 CSS 规则。无论如何,我认为确定您所在的页面应该由您的模板来处理。假设您的页面标题位于模板或 div 中,您可以设置如下规则:

var title = {{ title }} or $(div_with_title).text();
$("a:contains('+title+')").css('font-weight', 'bold');

或者添加一个类,以便您可以管理更多样式。

或者根本不需要 JavaScript,您可以从 View 中获取正在呈现的页面,并在 li 元素中添加一个条件,以在事件页面上添加一个类并在 css 中设置粗体。像这样:

<li {% if current_page == 'Home' %}class="active_page"{% endif %}...

关于jquery - 链接在加载后保持粗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30363530/

相关文章:

javascript - 动态添加元素到 DOM 后如何为元素添加属性

html - 尝试向下拉伸(stretch)背景,但仍留有空白

python - 有没有办法使用 Dropbox API 下载文件而不使用网络服务器带宽?

python - Sentry django 配置 - 记录器

javascript - 该功能适用​​于桌面和模拟器,但不适用于移动浏览器

javascript - 使用 byref 传递的数组

jquery - jQuery 可以修改特定媒体类型的 CSS 吗?

html - 如何使用网格引导导航?

html - 将图像设置为背景

python - MySql 服务器上的 Django 模型导出