【问题标题】:Underlining link upon click using javascript [closed]使用javascript单击时为链接加下划线[关闭]
【发布时间】:2014-07-11 17:01:15
【问题描述】:

好的,所以我对与网站相关的所有内容都是全新的,我正在尝试弄清楚如何制作它,以便在我的标题导航栏中单击链接时,该链接将带有下划线。

Here's my HTML,包括活动链接的 CSS。

现在,对于 javascript - 使链接处于活动状态 - 我使用什么文件(我使用的是 Bootstrap 3.2.0 btw)?我是使用 bootstrap.js,还是创建自己的 - 就像我为 CSS 所做的那样。

如果你能引导我完成它,那就太好了。谢谢。

编辑:

HTML:

 <div class="custom-wrapper"> 
        <div class="navbar navbar-inverse navbar-fixed-top">
            <div class="container">

                <button class="navbar-toggle" data-toggle="collapse" data-target=".navHeaderCollapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>

                <div class="collapse navbar-collapse navHeaderCollapse">

                    <ul class="nav navbar-nav navbar-right">

                        <li><a href="#1">1</a></li>
                        <li><a href="#2">2</a></li>

                        <li class="dropdown">   
                            <a href="#3" class="dropdown-toggle" data-toggle="dropdown"><span>3</span><b class="caret"></b></a>
                            <ul class="dropdown-menu">
                                <li><a href="#3.1">3.1</a></li>
                                <li><a href="#3.2">3.2</a></li>
                            </ul><!-- END: "dropdown-menu" -->      
                        </li><!-- END: "dropdown" -->
                        <li><a href="#4">4</a></li>

                    </ul><!-- END: "collapse navbar-collapse navHeaderCollapse" -->
                </div><!-- END: "container" -->
            </div><!-- END: "container" -->
        </div><!-- END: "navbar navbar-inverse navbar-fixed-top" --></div>

CSS:

.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #ffffff; /* text color for active */
  background-color: #ff0000; 
  /*text-decoration: underline;*/
}

【问题讨论】:

  • 在问题本身中包含代码。一个链接不够。
  • 大声笑@问题在回答后被搁置。有道理。

标签: javascript html css twitter-bootstrap-3 underline


【解决方案1】:

您在这里有很多问题,所以我将把它分解成更小的部分。

  1. “使链接处于活动状态 - 我使用什么文件(我使用的是 Bootstrap 3.2.0 btw)?” - 你会想要制作自己的文件。您通常不想修改原始框架文件,创建自己的文件更干净、更容易。创建一个名为 script.js 的文件,然后将其导入您的 html 表单中。

  2. 如何使链接“活跃” - 我宁愿不只是给你一堆代码,但可能最简单的做法是在 CSS 中创建一个名为“活跃”的类,例如:

    .active { color: red; text-decoration: underline; }

使用 jQuery 你可以做类似的事情

$(".nav > a").click(function() {        
    $(".nav > a").removeClass("active"); 
    $(this).addClass("active");          
})

要使用 jQuery,您需要像任何其他 js 或 css 文件一样将其导入您的脑海中:

<script type="text/javascript" src="jquery-1.7.1.min.js"></script>

使用this SO question as reference。

【讨论】:

  • 酷。我让它工作,但每当我将鼠标悬停在带下划线的链接上时。下划线消失。是因为我的 CSS:.navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { color: #ffffff; }?我应该在函数中说明什么,以便在加下划线时,链接在悬停时不会改变颜色?谢谢。
  • 这就是为什么,只需在 color:#fff 之后添加 text-decoration: underline 就可以了
  • 如果这不起作用 - 您可能需要编辑原始帖子并向我们展示您如何在 HTML 文档的头部导入 CSS 文件和引导文件
  • 它工作正常。谢谢:D
  • 最后一个问题。使用您上面添加文本装饰的建议:下划线;从我的 CSS 到我的代码 - 这会导致在悬停时甚至不活动的那些链接上有一个下划线。有没有办法修改函数,以便链接必须处于活动状态才能发生?
【解决方案2】:

将此添加到 javascript 代码中:

$(function() {

    $(".navbar-nav li a").on('click', function() {
        $(".navbar-nav li a").css('text-decoration', 'none');
        $(this).css('text-decoration', 'underline');
    });

});

这样当你点击一个项目时,它会带下划线

【讨论】:

  • 使用您的代码,当链接带有下划线并且您决定将鼠标悬停在链接上时,我将如何告诉该函数不要更改链接的颜色。
猜你喜欢
  • 2014-09-02
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多