2014-01-20 13 views
1

У меня есть экран, который использует вкладки jQuery и задавался вопросом, смогу ли я сохранить выбранную вкладку после обновления страницы (JS .reload();)?Есть ли способ сохранить выбранную jQuery вкладку после обновления страницы?

Любое руководство оценено.

+3

вам нужно сохранить выбранную вкладку, где некоторые, как в печенье/WebStorage (LocalStorage) или в стороне сервера –

+1

Это может помочь - http://stackoverflow.com/questions/18999501/bootstrap-3-keep- selected-tab-on-page-refresh – MusicLovingIndianGirl

ответ

1

https://github.com/carhartl/jquery-cookie

или

http://code.google.com/p/cookies/downloads/detail?name=jquery.cookies.2.2.0.js.zip&can=2&q=

Пример jquery.cookies.2.2.0.js

$(document).ready(function() { 
    var initialTabIndex = 0; 
    var jCookies = jQuery.cookies; 

    //alert('getting ' + jCookies.get("currentTab")); 

    if(jCookies.get("currentTab") != null){ 
     initialTabIndex = jCookies.get("currentTab"); 
    } 

    $('#tabs').tabs({ 
     activate : function(e, ui) { 
     //alert('setting ' + ui.newTab.index()); 
     jCookies.set("currentTab", ui.newTab.index().toString()); 
     }, 
     active : initialTabIndex 
    }); 
}); 
+0

I trie d, но получите сообщение об ошибке: Ошибка: объект не поддерживает свойство или метод 'cookie'. – connersz

+0

Я обновил код, исправляя некоторые ошибки. Теперь он работает, просто убедитесь, что вы добавили jquery.cookies.2.2.0.min.js –

+0

Если вы считали, что мой вопрос действительно, не могли бы вы его голосовать за него, еще раз спасибо. – connersz

0

Хотя предыдущий ответ, используя куки, конечно, работать, это, вероятно, не идеальное решение, данное народам, склонным принимать куки. (это также означает, что вам нужно будет показать отказ на своем сайте, указав, что вы используете файлы cookie, по крайней мере, для посетителей из ЕС). Я бы рекомендовал избегать использования файлов cookie, где это возможно, чтобы ваш сайт оставался работоспособным, если файлы cookie отключены или отклонены.

Лучше всего использовать «хэш» в конце URL-адреса.

Измените вкладку ссылки следующим образом:

<div id="UITabs"> 
<ul> 
    <li><a href="#Tab1">Tab 1</a></li> 
    <li><a href="#Tab2">Tab 2</a></li> 
    <li><a href="#Tab3">Tab 3</a></li> 
</ul> 
<div id="Tab1"></div> 
<div id="Tab2"></div> 
<div id="Tab3"></div> 
</div> 

Тогда в голове, добавьте следующий JavaScript для обеспечения хэш устанавливается при смене вкладок, и получить хэш PageLoad и отобразить нужную вкладку:

$(document).ready(function() { 

    $(function() { 
     $("#UITabs").tabs(); 

     $("#UITabs").bind("tabsshow", function (event, ui) { 
      location.hash = ui.newTab.find('a.ui-tabs-anchor').attr('href'); 
     }); 

     $(window).bind('hashchange', function (e) { 
      $("#UITabs").tabs("select", location.hash); 
     }); 
    }); 
}); 
Смежные вопросы