Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 加载后保持粗体的链接_Jquery_Css_Django_Client Side - Fatal编程技术网

Jquery 加载后保持粗体的链接

Jquery 加载后保持粗体的链接,jquery,css,django,client-side,Jquery,Css,Django,Client Side,我有一个导航栏,我希望在新页面重新加载后单击的链接保持粗体。我使用的是cssdjango,使用的是动态CSS静态文件。我还使用Jquery来实现“大胆”。当我使用preventDefault()时,代码确实可以工作(但它当然会停止加载链接)。加载新页面后,它会不断恢复到原来的CSS(不是粗体) $(document).ready(function(){ $('nav ul li a').click(function(){ $(this).addClass('boldlis

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

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

});
我不知道如何解决这个问题。。有什么建议吗

编辑:我试图使链接加粗,以便用户知道他/她在该页面上。用户希望单击“添加跑步”链接。。(一瞬间“添加跑步”变为粗体)。。但当它实际加载到添加运行页面时。。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>

{%load static%}
运行日志{%block title%}{%endblock title%}
{%if user.username%}
运行程序:{{user.username}
{%endif%}
运行日志
    {%if user.u经过身份验证%}
  • {%else%}
  • {%endif%}
{%block body%}{%endblock body%}

已解决:使用了你们所有人的部分解决方案。我不得不删除浏览器的cookies以使代码正常工作……似乎是罪魁祸首

随机猜测,但这不就行了吗

a:visited {
  font-weight: bold;
}

随机猜测,但这不是吗

a:visited {
  font-weight: bold;
}

首先使用窗口创建一个JS代码,用于标识当前加载的页面

var path = window.location.pathname;
var page = path.split("/").pop();
if( page =='ab'){
      $('.nav #ab').addClass('strong');
}

你可以为此编写任何样式。我希望您会得到一个好结果

首先创建一个JS代码,用于使用窗口标识当前加载的页面。location然后编写一个条件语句,如以下代码所示

var path = window.location.pathname;
var page = path.split("/").pop();
if( page =='ab'){
      $('.nav #ab').addClass('strong');
}
你可以为此编写任何样式。我希望您会得到一个好结果

解决方案将取决于
cookies
或现代
数据存储
。请尝试以下操作:

var clicks = [];
$(document).ready(function(){
  $("#navbar a").click(function(){
    clicks[$("a").index(this)] = $("a").index(this);
clicks = clicks.filter(function(n){ return n != undefined });

$.cookie('clicks',clicks.toString() , { expires: 7, path: '/' }); 
console.log(clicks)

  })
console.log($.cookie('clicks').split(","))
$("#navbar a").each(function(){
  if ($.inArray($("a").index(this)+"", $.cookie('clicks').split(",")) != -1){
  console.log($("a").index(this))
   $(this).addClass("visited")
   }

})

});
结帐

但是,上述解决方案在第一行
单击=[]
时有一个小错误。
clicks
数组的声明应该是有条件的,并且与
clicks
cookie相关,以使用cookie的值(如果存在)启动它


以下是为消除上述缺陷而进行的修改:

if ($.cookie('clicks')){
  var clicks = $.cookie('clicks').split(",");
}
else{
  var clicks = [];
}
另外,在
单击
数组中指定值将使类型转换为字符串:

 clicks[$("a").index(this)] = $("a").index(this)+"";
签出解决方案将取决于
cookies
或现代
数据存储。请尝试以下操作:

var clicks = [];
$(document).ready(function(){
  $("#navbar a").click(function(){
    clicks[$("a").index(this)] = $("a").index(this);
clicks = clicks.filter(function(n){ return n != undefined });

$.cookie('clicks',clicks.toString() , { expires: 7, path: '/' }); 
console.log(clicks)

  })
console.log($.cookie('clicks').split(","))
$("#navbar a").each(function(){
  if ($.inArray($("a").index(this)+"", $.cookie('clicks').split(",")) != -1){
  console.log($("a").index(this))
   $(this).addClass("visited")
   }

})

});
结帐

但是,上述解决方案在第一行
单击=[]
时有一个小错误。
clicks
数组的声明应该是有条件的,并且与
clicks
cookie相关,以使用cookie的值(如果存在)启动它


以下是为消除上述缺陷而进行的修改:

if ($.cookie('clicks')){
  var clicks = $.cookie('clicks').split(",");
}
else{
  var clicks = [];
}
另外,在
单击
数组中指定值将使类型转换为字符串:

 clicks[$("a").index(this)] = $("a").index(this)+"";

签出

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

var title = {{ title }} or $(div_with_title).text();
$("a:contains('+title+')").css('font-weight', 'bold');
或者添加一个类,以便管理更多样式

或者根本不使用javascript,您可以从视图中获取正在呈现的页面,并在li元素中添加一个条件,以便在活动页面上添加一个类,并在css中设置粗体。像这样:

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

另一个建议:页面名称是在模板中还是在div中?如果是这样,您可以使用它来设置css规则。在任何情况下,我认为决定你在哪一页应该由你的模板来处理。假设您的页面标题在模板或div中,您可以设置如下规则:

var title = {{ title }} or $(div_with_title).text();
$("a:contains('+title+')").css('font-weight', 'bold');
或者添加一个类,以便管理更多样式

或者根本不使用javascript,您可以从视图中获取正在呈现的页面,并在li元素中添加一个条件,以便在活动页面上添加一个类,并在css中设置粗体。像这样:

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

链接会更改url吗?请将链接的html添加到您的描述不太清楚的地方,您希望在单击时将链接加粗吗?为什么要将其从Sides元素中删除可能您需要:visited将其设置为粗体我希望它为粗体,以便用户知道他/她在该页面上。我想从其他兄弟姐妹中删除它以进行区分。我可以把H1标签作为标题。。但是我想要一个更干净的方法。链接会改变url吗?请将链接的html添加到您的描述不太清楚的地方,您希望在单击时将链接加粗吗?为什么要将其从Sides元素中删除可能您需要:visited将其设置为粗体我希望它为粗体,以便用户知道他/她在该页面上。我想从其他兄弟姐妹中删除它以进行区分。我可以把H1标签作为标题。。但是我想要一个更干净的方法。谢谢我用window.path方法来识别网站。很高兴听到你这么说谢谢我用window.path方法来识别网站。很高兴听到你这么说也用了你方法的一部分来识别链接。感谢您也使用了部分方法来识别链接。非常感谢。