我有一个带有链接列表的导航栏菜单,我希望在用户在页面上时显示活动链接,到目前为止,我已设法使用没有此类下拉菜单的链接。
但是我似乎无法通过下拉链接以正确的方式使用,如果用户位于下拉链接的页面上,导航栏上的父链接会突出显示。如下所示
非常感谢任何帮助。
答案 0 :(得分:0)
您可以通过在上下文字典视图中传递变量来完成此操作。
示例:
context['faculties']=True
然后在html中
{% if faculties %}active{% endif %}
对于每个视图功能,您可以设置要激活的变量。
答案 1 :(得分:0)
您可以非常轻松地在前端完成所有操作,而无需根据URL从后端传递任何内容。
如果你的网址是“/ faculties”,你可以这样做:
main_recyclerview.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e)
{
int position=rv.getChildAdapterPosition(rv.findChildViewUnder(e.getX(),e.getY()));
switch (position)
{
case 0:
{
wifi(position);
adapter2.notifyDataSetChanged();
}
break;
case 1:
{
sound(position);
adapter2.notifyDataSetChanged();
}
break;
case 2:
{
bluetooth(position);
adapter2.notifyDataSetChanged();
}
break;
}
return true;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e)
{
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
答案 2 :(得分:0)
如果您使用以下名称定义网址:
url('', 'home_view', name='home'),
url('posts/', 'posts_view', name='blog'),
url('contact/', 'contact_view', name='contact'),
您可以在模板中使用以下名称来使if语句起作用:
{% with request.resolver_match.url_name as url_name %}
<ul id="menu">
<li class="{% if url_name == 'home' %}active{% endif %}">Home</li>
<li class="{% if url_name == 'blog' %}active{% endif %}">Posts</li>
<li class="{% if url_name == 'contact' %}active{% endif %}">Contact</li>
</ul>
{% endwith %}
这使您免于URL路径重复的麻烦。
答案 3 :(得分:0)
有两种方法:要么管理CSS以突出显示父项(如果其子项中的任何一个处于“活动状态”),要么(以维护成本和DRY损失为代价)测试模板的成员资格:
<li class="dropdown {% if url_name in "neo_app:business,neo_app:IT,neo_app:hospitality" %}
active
{% endif %}>Faculties</li>