我有一个我在Django开发的Web应用程序。我想用一种简单的方法来跟踪用户在网站上的位置。 所以我想我会改变点击菜单上项目的CSS。
我添加了这段简单的代码。
<script type="text/javascript">
$(document).ready(function(){
$(".up_menu_item").click(function(){
$(this).addClass("green");
var excludeThis = $(this);
$(".up_menu_item").not(excludeThis).each(function(){
$(this).removeClass("green");
});
});
});
</script>
当我点击菜单项时,颜色会发生变化,但之后会再次变为默认值。我点击的项目实际上是将用户重定向到另一个URL的标签。但菜单(和javascript)总是包含在被调用的网址中,所以我认为这个课程会留下来。
我不知道我是否很清楚,但我会感激任何帮助,因为这开始让我发疯!
答案 0 :(得分:2)
Javascript不适用于此。正如Kim在评论中所说,当您重新加载页面时,您的课程将不再出现。
由于您正在使用Django,因此在Django模板中执行此操作的方法是 - 对于菜单中的每个URL,检查它是否与当前URL匹配,如果是,则添加该类。
修改您可以从request.path
获取当前网址,假设您已将请求传递到模板中(如果您已启用request context processor,则会自动执行此操作)
答案 1 :(得分:0)
在将类读取到新元素之前从类中删除它会不会更容易吗?
$(".up_menu_item").click(function(){
$($(this).attr('class')).removeClass();
$(this).addClass("green");
});
答案 2 :(得分:0)
当您转到另一个页面时,所有使用Javascript(或jQuery自然)应用的更改都将消失。页面像往常一样加载。所做的所有更改仅应用于当前显示页面。它不会修改之后的页面。
您可以检查加载页面时打开的页面,并更改相应按钮的颜色。最好的方法是使用服务器端编程语言(在你的情况下是带有Django框架的Python)添加类,如果页面与右键匹配。