javascript - 单击菜单更改文本

标签 javascript jquery html css menu

我正在尝试创建一个菜单系统,该系统会根据当时单击的菜单更改文本,因为我不想创建许多几乎相同且需要大量加载的页面。 我在网上看过,但没有找到任何东西,可能是因为我没有使用正确的关键词,但我想知道实现这一目标的最佳方法是什么?我发现你可以在 css 中使用可见性标签来隐藏文本,但这会留下很多空白行,而且由于我显示了很多文本,所以看起来会很糟糕

HTML:

    <html>
  <head>
    <script src="http://thecodeplayer.com/uploads/js/prefixfree-1.0.7.js" type="text/javascript" type="text/javascript"></script>
    <script src="http://thecodeplayer.com/uploads/js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="js/menu.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="css/menu.css">

  </head>
  <body>

    <div id="accordian">
        <ul>
            <li class="active">
                <h3><span class="icon-dashboard"></span>Menu 1</h3>
                <ul>
                    <li><a href="#">Submenu 1</a></li>
                    <li><a href="#">Submenu 2</a></li>
                    <li><a href="#">Submenu 3</a></li>
                </ul>
            </li>
            <li>
                <h3><span class="icon-tasks"></span>Menu 2</h3>
                <ul>
                    <li><a href="#">Submenu 4</a></li>
                    <li><a href="#">Submenu 5</a></li>
                    <li><a href="#">Submenu 6</a></li>
                </ul>
            </li>
            <li>
                <h3><span class="icon-calendar"></span>Menu 3</h3>
                <ul>
                    <li><a href="#">Submenu 7</a></li>
                    <li><a href="#">Submenu 8</a></li>
                    <li><a href="#">Submenu 9</a></li>
                </ul>
            </li>
      </ul>
    </div>
  </body>
</html>

CSS:

 @import url(http://fonts.googleapis.com/css?family=Nunito);
* {margin: 0; padding: 0;}

body {
    background: #4EB889;
    font-family: Nunito, arial, verdana;
}
#accordian {
    background: #004050;
    width: 250px;
    margin: 100px auto 0 auto;
    color: white;
    box-shadow:
        0 5px 15px 1px rgba(0, 0, 0, 0.6),
        0 0 200px 1px rgba(255, 255, 255, 0.5);
}
#accordian h3 {
    font-size: 12px;
    line-height: 34px;
    padding: 0 10px;
    cursor: pointer;
    background: #003040;
    background: linear-gradient(#003040, #002535);
}
#accordian h3:hover {
    text-shadow: 0 0 1px rgba(255, 255, 255, 0.7);
}
#accordian h3 span {
    font-size: 16px;
    margin-right: 10px;
}
#accordian li {
    list-style-type: none;
}
#accordian ul ul li a {
    color: white;
    text-decoration: none;
    font-size: 11px;
    line-height: 27px;
    display: block;
    padding: 0 15px;
    transition: all 0.15s;
}
#accordian ul ul li a:hover {
    background: #003545;
    border-left: 5px solid lightgreen;
}
#accordian ul ul {
    display: none;
}
#accordian li.active ul {
    display: block;
}

jQuery:

$(document).ready(function(){
    $("#accordian h3").click(function(){
    if(!$(this).next().is(":visible")) {
        $(this).next().slideDown();
        } else {
            $(this).next().slideUp();
        }
    })
})

最佳答案

不用改css,尽量用hide()和show()

here is example

关于javascript - 单击菜单更改文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876339/

相关文章:

javascript - getElement 1 和 do1、getElement 2 和 do2、getElement 3 和 do3

javascript - 如何顺序运行 getJSON

javascript - 如何检查此示例中的复选框是否已选中(javascript/jQuery。)

jquery - 仅对特定的 div 使用缩放

javascript - Cordova Console.log 不打印 $http 响应

javascript - 解释器如何处理在全局对象中引用的局部函数?

javascript - Trampoline、递归和惰性求值

jquery - 字体渲染不适用于 Mozilla

html - 使用 AngularJS 的动态工具提示

javascript - 为什么我无法在 jquery 中获取该单选按钮的状态?