2016-06-24 3 views
1

Я работаю в html, css, jquery для переключения ul. Я хочу, чтобы тот же ul был активным после перезагрузки страницы.Как сохранить ту же самую «ul» активную после перезагрузки страницы?

Как это сделать?

Моя HTML структура:

<ul id="level1" class="category"> 
<li class="level1 inactive"> 
    <a href="#">abc</a> 
    <ul id="level2" style=" display:none;"> 
    <li class="level2 inactive"><a href="#url">Level2</a></li> 
    <li class="level2 inactive"><a href="#url">Level2</a></li> 
    </ul> 
</li> 
<li class="level1 inactive"> 
    <a href="#">xyz</a> 
    <ul id="level2" style=" display:none;"> 
    <li class="level2 inactive"><a href="#url">Level2</a></li> 
    <li class="level2 inactive"><a href="#url">Level2</a></li> 
    </ul> 
</li> 

И мой JQuery является:

 <script> 
    var $j = jQuery.noConflict(); 
    $j(function() { 
     $j('li.level1').click(function() { 
      $j("li.level1").addClass('inactive').removeClass("current"); 
      $j(this).addClass('current').removeClass('inactive'); 
     $j('ul#level2').hide(); 
     $j('ul#level2', this).show(); 
     }); 


}); 
</script> 

Пожалуйста, помогите мне решить эту проблему.

+0

Использование 'localStorage' – nikhil

+0

Вы можете мне помочь в этом? Я новичок в jquery. – Ramya

ответ

1

Вы можете использовать localStorage

Для сохранения объекта

localStorage.setItem('last-accessed-list', 'level2'); 

Чтобы получить элемент

var lastAccessedList = localStorage.setItem('last-accessed-list'); 

Для справки - localStorage

Пожалуйста, см - только дает представление для вас для изучения

2

localStorage - лучший вариант для того, что вы ищете. Вы можете сохранить и получить товар от localStorage. Рассмотрим ниже пример.

var $j = jQuery.noConflict(); 
 
$j(function() { 
 
    var index=localStorage.getItem("liIndex"); //accessing localStorage item 
 
    $j('li.level1').click(function() { 
 
    localStorage.setItem("liIndex",$j(this).index()); //store the index of clicked element 
 
    $j("li.level1").addClass('inactive').removeClass("current"); 
 
    $j(this).addClass('current').removeClass('inactive'); 
 
    $j('ul#level2').hide(); 
 
    $j('ul#level2', this).show(); 
 
    }); 
 
    if(index) //get the index after attaching click event 
 
    $("li.level1").eq(index).trigger('click'); //trigger click for that element with that index 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="level1" class="category"> 
 
    <li class="level1 inactive"> 
 
    <a href="#">abc</a> 
 
    <ul id="level2" style=" display:none;"> 
 
     <li class="level2 inactive"><a href="#url">Level2</a> 
 
     </li> 
 
     <li class="level2 inactive"><a href="#url">Level2</a> 
 
     </li> 
 
    </ul> 
 
    </li> 
 
    <li class="level1 inactive"> 
 
    <a href="#">xyz</a> 
 
    <ul id="level2" style=" display:none;"> 
 
     <li class="level2 inactive"><a href="#url">Level2</a> 
 
     </li> 
 
     <li class="level2 inactive"><a href="#url">Level2</a> 
 
     </li> 
 
    </ul> 
 
    </li> 
 
<ul>

Поскольку snippet не поддерживает localStorage, это то, что он сказал мне, по крайней мере, Вот

JsFiddle Demo

для вас.

+0

Скрипка отлично работает. Но когда я нажимаю 'li' в моем коде, всего через секунду« ul »переключается открыто и перенаправляется на соответствующий« url »в теге привязки, и полная страница перезагружается. – Ramya

+1

@Ramya добавить 'e.preventDefault()' inside '$ j ('li.level1'). Click (function() {' like '$ j ('li.level1'). Click (function (e) {e .preventDefault(); // остающийся код}) 'Дайте мне знать, если вы сталкиваетесь с проблемами .. –

+0

Я следил за вашим руководством. Теперь, когда я нажимаю' '' '', он не перенаправляется на тр 'url' и даже теперь' ul 'закрывается, когда страница обновляется. @Guruprasad Rao Я хочу, чтобы страница была перенаправлена ​​на указанный URL, а также выбранная li' ul' должна быть открыта. Возможно ли это? Если возможно, пожалуйста, помогите мне. – Ramya

2

Это поможет вам.

<script> 
    var $j = jQuery.noConflict(); 
    $j(function() { 
     $j('li.level1').click(function() { 
      $j("li.level1").addClass('inactive').removeClass("current"); 
     $j(this).addClass('current').removeClass('inactive'); 
     $j('ul#level2').hide(); 
     $j('ul#level2', this).show(); 
       var parent = $j(this).parent().attr('id'); 
       localStorage.setItem('activeIndex', $j(this).index()); 
     }); 
      var currentIndex = localStorage.getItem('activeIndex');  $j('li.level1').eq(currentIndex).addClass('current').removeClass('inactive'); 
      $j('li.level1').eq(currentIndex).children('ul').css('display','block'); 
}); 
</script> 
+0

Он перенаправляется на соответствующий url, но активная ul не активна после перенаправления страницы. :(застрял. – Ramya

+0

Лучше отправить свою полную страницу тогда? Тогда только мы узнаем, в чем проблема? –

Смежные вопросы