为了账号安全,请及时绑定邮箱和手机立即绑定

基于当前选定选项卡的动态导航栏突出显示

基于当前选定选项卡的动态导航栏突出显示

桃花长相依 2022-07-01 16:47:18
我正在使用 Rails,并且有一个 Bootstrap 导航栏。我需要这样做,以便根据您单击的导航栏选项卡(主页、OOTD、帐户),它会以某种方式突出显示它(如白色文本)。我试图动态地让它工作active,甚至使用一个应该切换它的功能,但它不起作用。我的application.html.erb,其中包含我的导航栏:<!DOCTYPE html><html>  <head>    <title>Finalproj493</title>    <%= csrf_meta_tags %>    <%= csp_meta_tag %>    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>  </head>  <body>    <nav class="navbar navbar-expand-lg navbar-dark bg-dark" style="width: 100%; height: 5vw;">    <ul class="navbar-nav mr-auto nav">      <li class="nav-item">        <a class="nav-link" href="/welcome/index">Home</a>      </li>      <li class="nav-item 1">        <a class="nav-link" href="/ootd">OOTD</a>      </li>      <li class="nav-item 2">        <a class="nav-link" href="/account">Account</a>      </li>    </ul>    </nav>    <br>    <br>    <%= yield %>  </body></html>我试图使用该is_active()功能来动态切换(“Rails”方式),但它不起作用。该函数在 myapplication_helper.rb中,我在导航栏中添加了对它的函数调用(如上所示):module ApplicationHelper    def is_active(action)               params[:action] == action ? "active" : nil            endend也许我正在以错误的方式解决这个问题,但是有人可以提出一种active在 Rails 中结合导航栏样式的简单方法吗?
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

您可以使用current_page?来设置活动类。您可以在以下位置创建一个方法app/helpers/application_helper.rb:


def active_class(path)

 "active" if current_page?(path)

end

你可以像这样使用它:


<li class="<%= active_class(welcome_index_path) %>">

current_page?active如果当前请求 URI 是由path参数生成的,将返回 true 并设置类。


current_page? 您可以在此处阅读更多信息。


查看完整回答
反对 回复 2022-07-01
  • 1 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信