jquery - 使用 Jquery 激活 Ul li

标签 jquery html css ajax

我正在尝试为菜单添加事件选项。当我使用 jquery 添加事件类时,它不起作用。我在下面添加了所有的 css 和 jquery 代码。谁能帮我解决这个问题。

 <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
    <script src="js/modernizr-2.0.6.min.js" type="text/javascript"></script> 
<style type="text/css">

* {
    margin: 0;
    padding: 0;
    outline: none;  
}

ul {
    list-style: none;   
}

.navigation {
    margin: 0px 0;  
    font: bold 12px/18px "Helvetica Neue", Helvetica, Arial, sans-serif;
    text-transform: uppercase;
    color: #444;
    width:100%;
    -webkit-box-shadow: 0 1px rgba(255,255,255,1) inset;
    background: #F7F7F7; /* Old browsers */
    background: -moz-linear-gradient(top, #F7F7F7 0%, #EDEDED 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F7F7F7), color-stop(100%,#EDEDED)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* IE10+ */
    background: linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F7F7F7', endColorstr='#EDEDED',GradientType=0 ); /* IE6-9 */    
}

.navigation:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}

.navigation ul {    
    float: left;
    border-radius: 0px;
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.07);
    -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.07);
    overflow: hidden;
}

.navigation li {
    float: left;
    border-style: solid; 
    border-width: 1px;
    border-color: #BABABA #BABABA #BABABA #FFF;
    box-shadow: 0 1px rgba(255,255,255,1) inset;
    -webkit-box-shadow: 0 1px rgba(255,255,255,1) inset;
    background: #F7F7F7; /* Old browsers */
    background: -moz-linear-gradient(top, #F7F7F7 0%, #EDEDED 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F7F7F7), color-stop(100%,#EDEDED)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* IE10+ */
    background: linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F7F7F7', endColorstr='#EDEDED',GradientType=0 ); /* IE6-9 */    
}

.navigation li:hover, navigation li.current {
    box-shadow: 0 1px rgba(255,255,255,0.2) inset;
    -webkit-box-shadow: 0 1px rgba(255,255,255,0.2) inset;
    border-color: #262626 !important;
    background: #4D4D4D; /* Old browsers */
    background: -moz-linear-gradient(top, #4D4D4D 0%, #262626 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4D4D4D), color-stop(100%,#262626)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* IE10+ */
    background: linear-gradient(top, #4D4D4D 0%,#262626 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4D4D4D', endColorstr='#262626',GradientType=0 ); /* IE6-9 */
}


.navigation a {
    display: block;
    padding: 10px 15px;
    color: #444;
    text-decoration: none;
    text-shadow: 0 1px #FFF;
}
.navigation  a.active{
    box-shadow: 0 1px rgba(255,255,255,0.2) inset;
    -webkit-box-shadow: 0 1px rgba(255,255,255,0.2) inset;
    border-color: #262626 !important;
    background: #4D4D4D; /* Old browsers */
    background: -moz-linear-gradient(top, #4D4D4D 0%, #262626 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4D4D4D), color-stop(100%,#262626)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* IE10+ */
    background: linear-gradient(top, #4D4D4D 0%,#262626 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4D4D4D', endColorstr='#262626',GradientType=0 ); /* IE6-9 */
    color:#fff;
}

.navigation a:hover, #navigation li.current a {
    color: #FFF;
    text-shadow: 0 1px #000;
}

.navigation li:first-child {
    border-left-color: #BABABA;
    border-radius: 0px 0 0 0px;
}

.navigation li:last-child {
    border-radius: 0 0px 0px 0;
}


</style>
<script type="text/javascript"> 

$(document).ready(function() {  


    $(".navigation li").click(function() {  
        $(".navigation li").removeClass("a.active"); //Remove any "active" class  
        $(this).addClass("a.active"); //Add "active" class to selected tab  


        $(activeTab).show(); //Fade in the active content  
        return false;  
    });  

});  
</script> 
<div id="banner">
<div id="topnavbar">
<div id="topnavmenu">
<a rel="nofollow" href="http://www.checkmytrip.com/">CheckmyTrip</a> | <a rel="nofollow" href="baggage.php">Baggage Allowance</a>| <a rel="nofollow" href="traveltips.php">Travel Tips</a>
</div>
</div>
<img src="images/Banner.png"  width="1000" height="150"/>

</div>



    <nav class="navigation">
        <ul>
            <li><a href="index.php" class="active" >Home</a></li>
            <li><a  href="cheap-flights-to-colombo-sri-lanka.php">Flights</a></li>
            <li><a href="destination.php">Travel Guide</a></li>
            <li><a href="holidaytours.php">Tours & Holidays</a></li>
            <li><a href="aboutus.php">About us</a></li>
            <li><a href="contactus.php">Contact Us</a></li>
        </ul>
    </nav>

最佳答案

active 类被添加到 li 元素内的 a 元素,要访问它你需要使用 $(". navigation li a") 不是 $(".navigation li").removeClass("a.active").

$(".navigation li").click(function() {  
    $(".navigation li a.active").removeClass("active"); //Remove any "active" class  
    $('a', this).addClass("active"); //Add "active" class to selected tab  


    $(activeTab).show(); //Fade in the active content  
    return false;  
});  

演示:Fiddle

我还建议使用 .on 使用事件委托(delegate)

$(".navigation").on('click', 'li', function() {  
    $(".navigation li a.active").removeClass("active"); //Remove any "active" class  
    $('a', this).addClass("active"); //Add "active" class to selected tab  


    //Commented since it is not available
    //$(activeTab).show(); //Fade in the active content  
    return false;  
});  

关于jquery - 使用 Jquery 激活 Ul li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15494004/

相关文章:

javascript - .append 或 .after 定义为变量?

javascript - 自定义对象上的 Jquery on() 单击函数

html - 在一个轴上将元素与父元素的父元素对齐?

javascript - jQuery 用户界面 : Multiple vertical sliders to be aligned on a same row

css - 停止在悬停时显示 Bootstrap 3 汉堡菜单下拉菜单

javascript - jquery鼠标拖拽效果?

java - 如何为 servlet 和对象数组设置数据表?

javascript - 如何在浏览器调整大小时更改 div 元素的 id?

jquery - 第二次拖动时,捕捉拖动位置恢复正常

css - 无法居中 div 和 CSS 验证