javascript - 如何使用javascript控制标签当前效果

标签 javascript html css

我有一个 html 表单,其中包含一个标签菜单,代码是

<ul id="menu">
    <li><a href="f?p=&APP_ID.:1:&SESSION.:" class="active">Home</a></li>
    <li>
        <a href="f?p=&APP_ID.:400:&SESSION.:" class="current">Leave Eligibility</a>

    </li>
    <li><a href="f?p=&APP_ID.:450:&SESSION.:" class="current2">Apply Leave</a></li>
    <li><a href="f?p=&APP_ID.:300:&SESSION.:" class="current3">Change Password</a></li>
    <li><a href="f?p=&APP_ID.:11:&SESSION.:" class="current4">Applied Leaves</a></li>
        <li><a href="f?p=&APP_ID.:25:&SESSION.:" class="current4">Holidays</a></li>
        <li><a href="f?p=&APP_ID.:445:&SESSION.:" class="current4">Contact</a></li>
</ul>

这个html的css是

#menu{

    margin: 0;
    padding: 10px 0 0 0;
    list-style: none;
    background: #111;
    background: -moz-linear-gradient(#444, #111);
        background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #111),color-stop(1, #444));
    background: -webkit-linear-gradient(#444, #111);
    background: -o-linear-gradient(#444, #111);
    background: -ms-linear-gradient(#444, #111);
    background: linear-gradient(#444, #111);
    -moz-border-radius: 10px;
    border-radius: 10px;
    -moz-box-shadow: 0 2px 1px #9c9c9c;
    -webkit-box-shadow: 0 2px 1px #9c9c9c;
    box-shadow: 0 2px 1px #9c9c9c;
}

#menu li{
    float: left;
    padding: 0 0 10px 0;
    position: relative;
}

#menu a{
    float: left;
    height: 25px;
    padding: 0 25px;
    color: #999;
    text-transform: uppercase;
    font: bold 12px/25px Arial, Helvetica;
    text-decoration: none;
    text-shadow: 0 1px 0 #000;
}

#menu li:hover > a{
    color: #fafafa;
}

*html #menu li a:hover{ /* IE6 */
    color: #fafafa;
}

#menu li:hover > ul{
    display: block;
}

/* Sub-menu */

#menu ul{
    list-style: none;
    margin: 0;
    padding: 0;
    display: none;
    position: absolute;
    top: 35px;
    left: 0;
    z-index: 99999;
    background: #444;
    background: -moz-linear-gradient(#444, #111);
    background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #111),color-stop(1, #444));
    background: -webkit-linear-gradient(#444, #111);
    background: -o-linear-gradient(#444, #111);
    background: -ms-linear-gradient(#444, #111);
    background: linear-gradient(#444, #111);
    -moz-border-radius: 5px;
    border-radius: 5px;
}

#menu ul li{
    float: none;
    margin: 0;
    padding: 0;
    display: block;
    -moz-box-shadow: 0 1px 0 #111111, 0 2px 0 #777777;
    -webkit-box-shadow: 0 1px 0 #111111, 0 2px 0 #777777;
    box-shadow: 0 1px 0 #111111, 0 2px 0 #777777;
}

#menu ul li:last-child{
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
    box-shadow: none;
}

#menu ul a{
    padding: 10px;
    height: auto;
    line-height: 1;
    display: block;
    white-space: nowrap;
    float: none;
    text-transform: none;
}

*html #menu ul a{ /* IE6 */
    height: 10px;
    width: 150px;
}

*:first-child+html #menu ul a{ /* IE7 */
    height: 10px;
    width: 150px;
}

#menu ul a:hover{
        background: #0186ba;
    background: -moz-linear-gradient(#04acec,  #0186ba);
    background: -webkit-gradient(linear, left top, left bottom, from(#04acec), to(#0186ba));
    background: -webkit-linear-gradient(#04acec,  #0186ba);
    background: -o-linear-gradient(#04acec,  #0186ba);
    background: -ms-linear-gradient(#04acec,  #0186ba);
    background: linear-gradient(#04acec,  #0186ba);
}

#menu ul li:first-child a{
    -moz-border-radius: 5px 5px 0 0;
    -webkit-border-radius: 5px 5px 0 0;
    border-radius: 5px 5px 0 0;
}

#menu ul li:first-child a:after{
    content: '';
    position: absolute;
    left: 30px;
    top: -8px;
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 8px solid #444;
}

#menu ul li:first-child a:hover:after{
    border-bottom-color: #04acec;
}

#menu ul li:last-child a{
    -moz-border-radius: 0 0 5px 5px;
    -webkit-border-radius: 0 0 5px 5px;
    border-radius: 0 0 5px 5px;
}

/* Clear floated elements */
#menu:after{
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
}

* html #menu             { zoom: 1; } /* IE6 */
*:first-child+html #menu { zoom: 1; } /* IE7 */
ul#menu li a.active{
        color: #fafafa;
    }

因此默认情况下,主页选项卡在页面加载时悬停。 当我单击离开资格选项卡时,主页选项卡的悬停效果将被禁用并且 休假资格选项卡将悬停。 我想用 javascript/jquery 来控制它。 所以任何人都请告诉我该怎么做。

最佳答案

如果您使用的是记事本,请尝试使用代码段。

在你的主页上设计应该是这样的

    <li><a href="f?p=&APP_ID.:1:&SESSION.:" class="active">Home</a></li>
    <li>
        <a href="f?p=&APP_ID.:400:&SESSION.:" class="current">Leave Eligibility</a>

    </li>

在您的休假资格页面上

 <li><a href="f?p=&APP_ID.:1:&SESSION.:" class="current">Home</a></li>
    <li>
        <a href="f?p=&APP_ID.:400:&SESSION.:" class="active">Leave Eligibility</a>

    </li>

其他页面依此类推。

我把它放在你的快速引用...

试试这个

$("a").live('click', function() {
  $("a").removeClass("active");
  $(this).addClass("active");
  return false;
});

检查这里的输出 http://jsfiddle.net/Hn54A/3/

关于javascript - 如何使用javascript控制标签当前效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11077332/

相关文章:

javascript - 将默认值设置为模型中的局部变量会导致未定义

javascript - HTML5 Canvas : Reproduce a picture with getImageData and putImageData

android - 获取链接在静态布局中的位置

javascript - angular.js 是否会导致另一个 jQuery 插件不触发并在控制台中不产生任何错误?

jQuery - 我需要 slider 的主页在最初加载页面时显示。提供的当前代码

Javascript代码到struts2

javascript - jsp中的TextArea字段

javascript - 使用 node.firstChild() 时无法弄清楚这个 #text 来自哪里

html - 链接不可点击,因为::之前和::之后

html - 如何在 HTML 中对文本进行双删除线?