добавить класс на li удалить после загрузки страницы

0

Я использую jquery, чтобы добавить класс к активному css на "li", а также перейти к html page.but, после того как страница перейдет к классу "Ли". Я пробовал разные способы решить эту проблему, но не мог понять.

$(document).ready(function(){
    $( '#topList ul li' ).click(function() {
        alert($(this).attr('id'));


        if($(this).attr('id') == "add") {            
            document.location.href = 'localhost:8080/add';
            $(this).attr('id').addClass("active");            
        }
    });    
});

вот список меню, я хочу, когда я нажимаю на li, он должен вызывать добавление страницы, а также добавлять класс на этом ли.

html-код

<ul class="nav">
    <li class="" id="add"><a href="javascript:void(0);"  ><i class="add"></i> Add</a>      </li>
<ul>
  • 0
    Извините за это я отредактировал вопрос. Пожалуйста, проверьте сейчас
  • 0
    Вы сказали, что hover но вы используете событие click !
Показать ещё 2 комментария

3 ответа

1
Лучший ответ

Используйте следующий скрипт на странице, где у вас есть меню или ссылки.

<div id="cssmenu">
<a href="blah blah" > Test page</a>
<a href="blah blah" > Test page</a>
</div>





   $(document).ready(function () {
                var pageTitle = window.location.pathname.replace(/^.*\/([^/]*)/, "$1");

                $('#cssmenu a').each(function () {
                    if ($(this).attr('href').toLowerCase() == pageTitle.toLocaleLowerCase())
                        $(this).addClass('active');
                });



            });
  • 0
    ХОРОШО. тогда как перемещаться по странице одновременно?
  • 0
    Вы можете использовать тот же код, который вы уже использовали для перенаправления. это просто для контроля активного класса на активной странице. см обновленный ответ.
Показать ещё 3 комментария
2

Вам нужно добавить класс для li на странице, которую вы вызываете, т.е. страница будет отображаться при вызове localhost: 8080/add. Поскольку в вашем коде настройка активного класса не будет вызвана, так как localhost: 8080/add начнет загрузку в предыдущей строке кода (document.location.href= 'localhost:8080/add';)

Если страница, которая будет отображаться, является статической страницей, добавьте этот код на эту страницу.

$(document).ready(function(){
 $('#add').addClass("active"); 
});
  • 0
    ОК, но как это решить? Можете ли вы дать ему какое-то объяснение?
  • 0
    Я знаю, что это так, но как это решить? что вызов URL и добавление класса на li.
Показать ещё 4 комментария
1

Я решил эту проблему на своем веб-сайте, посмотрев URL-адрес и решив, какой из элементов навигации лучше всего добавить.

function showContent(target) {
    var e = $('#'+target);
    $(".content").hide();
    $("#nav li.active").removeClass("active");
    $("#nav li[target='"+target+"']").addClass("active");
    e.toggle();
    ga('send','pageview',window.location.pathname+"#"+target);
}

// this looks at the URL (by the #...) and decides which view is active
// this gets called on ready and if the client hits the link 
//   (which dynamically loads instead of making a trip for a new page to the server)
$(window).hashchange(function() {
    var which=window.location.hash.substring(1);
    switch( which) {
    default:
        which="profile";
    case "profile":
    case "resume":
    case "projects":
    case "contact":
        showContent( which);
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню