我想创建一个菜单栏,通过更改该菜单的背景颜色来保留关于单击哪个菜单的信息。
<div class="dashboard_navigation">
{% for header in headers %}
<div class="navigation_header" name="Home">
<a id='a' href="{{ header.url }}">{{ header.name }}</a>
<div class="navigation_subheader">
{% for subheader in subheaders %}
{% if header.id == subheader.parent.id %}
<div>
<a href="{{ subheader.url }}" >{{ subheader.name }}</a>
</div>
{% endif %}
{% endfor %}
</div>
</div>
{% endfor %}
我使用的脚本如下
$(".navigation_header").live('click', function()
{
$(this).children('a').css("background-color","red");
});
我做错了什么?问题中提供的信息是否足够,或者我应该添加一些内容?
答案 0 :(得分:0)
当您单击链接时,页面将被重定向,因此即使您将单击事件处理程序附加到其父div
,它也不会起作用,因为页面将被重定向。
您可以在cookie
中为当前用户会话存储单击的链接。读取页面加载时的cookie值并相应地设置背景颜色。
你可以在这里查看jquery cookie插件 http://plugins.jquery.com/project/Cookie
答案 1 :(得分:0)
每个div.navigation_header
都有一个唯一的名称,例如“ Home ”,对吧? (如果他们不然后给他们一个!)
您的服务器还应该知道哪个页面与每个名称相对应。因此,它将为该页面编写一种样式。
例如,对于 Home 页面,它会写:
div.navigation_header[name=Home] a {
background-color: red;
}
否则,您必须使用cookie或URL参数。