JQuery выбрал проблему вкладки? - PullRequest
3 голосов
/ 05 марта 2010

Я довольно новичок в JQuery, и по какой-то причине я не могу заставить текущую выбранную вкладку правильно выделять, это должен быть другой цвет при выборе.Кто-нибудь может помочь мне решить эту проблему?

Вот JQuery.

$(document).ready(function() {

    //When page loads...
    $(".form-content").hide(); //Hide all content
    $("#menu ul li:first").addClass("selected-link").show(); //Activate first tab
    $(".form-content:first").show(); //Show first tab content

    //On Click Event
    $("#menu ul li").click(function() {

        $("#menu ul li").removeClass("selected-link"); //Remove any "selected-link" class
        $(this).addClass("selected-link"); //Add "selected-link" class to selected tab
        $(".form-content").hide(); //Hide all tab content

        var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the selected-link tab + content
        $(activeTab).fadeIn(); //Fade in the selected-link ID content
        return false;
    });

});

Вот CSS.

#container {
    width: 1024px;
    background: blue;
    padding: 0px;
    margin: 0px;
    float: left;
}

#menu {
    padding: 0px;
    margin: 0px;
}


#menu ul {
    width: 1024px;
    padding: 0px;
    margin: 0px;
    margin-top: 25px;
    border: 0px; 
    float: left;
    text-align: left;
    list-style-type: none;
}

#menu li {
    margin: 0px;
    margin-right: 1px;
    padding: 0px;
    float: left;
    border: 0px;
    width: auto;
}

#menu a:link, #menu a:visited {
    padding: 9px 9px;
    float: left;
    color: white;
    text-decoration: none;
    background: black;
    width: auto;
}

#menu a.selected-link, #menu a:hover {
    background: blue;
    color: white;
}

Вот HTML.

    <div id="body-content">

        <div id="menu">
            <ul>
                <li><a href="#tab-1" title="">tab 1</a></li>
                <li><a href="#tab-2" title="">tab 2</a></li>
                <li><a href="#tab-3" title="">tab 3</a></li>
                <li><a href="#tab-4" title="">tab 4</a></li>
                <li><a href="#tab-5" title="">tab 5</a></li>
            </ul>
        </div>


        <div id="container">

            <div id="tab-1" class="form-content">
                <p>tab 1</p>
            </div>

            <div id="tab-2" class="form-content">
                <p>tab 2</p>
            </div>

            <div id="tab-3" class="form-content">
                <p>tab 3</p>
            </div>

            <div id="tab-4" class="form-content">
                <p>tab 4</p>
            </div>

            <div id="tab-5" class="form-content">
                <p>tab 5</p>
            </div>      

        </div>

    <div>

Ответы [ 2 ]

1 голос
/ 05 марта 2010

Попробуйте изменить эти строки:

$("#menu ul li").removeClass("selected-link");
$(this).addClass("selected-link");

Кому:

$("#menu ul li").find('a').removeClass("selected-link");
$(this).find('a').addClass("selected-link");

Вы хотите добавить класс к link, а не li.

0 голосов
/ 05 марта 2010

Редактировать

$(document).ready(function() {

    //When page loads...
    $(".form-content").hide(); //Hide all content
    var firstMenu = $("#menu ul li:first");
    firstMenu.show();
    firstMenu.find("a").addClass("selected-link"); //Activate first tab
    $(".form-content:first").show(); //Show first tab content

    //On Click Event
    $("#menu ul li").click(function() {

        $("#menu ul li a").removeClass("selected-link"); //Remove any "selected-link" class
        $(this).find("a").addClass("selected-link"); //Add "selected-link" class to selected tab
        $(".form-content").hide(); //Hide all tab content

        var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the selected-link tab + content
        $(activeTab).fadeIn(); //Fade in the selected-link ID content
        return false;
    });

});

"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...