1

Remembering Active Tab in JQuery UI Tabs

Posted (Updated ) in Uncategorized

If you refresh or come back to a site often, it’s handy to have JQuery UI tabs remember which tab you were last on as you left. This simple script will handle that for you:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
jQuery(function($) {
    var index = 'qpsstats-active-tab';
    //  Define friendly data store name
    var dataStore = window.sessionStorage;
    var oldIndex = 0;
    //  Start magic!
    try {
        // getter: Fetch previous value
        oldIndex = dataStore.getItem(index);
    } catch(e) {}
 
    $( "#tabs" ).tabs({        active: oldIndex,
        activate: function(event, ui) {
            //  Get future value
            var newIndex = ui.newTab.parent().children().index(ui.newTab);
            //  Set future value
            try {
                dataStore.setItem( index, newIndex );
            } catch(e) {}
        }
    });
});

No other code is necessary. Add your tab markup as you normally would (Remember to give it a matching ID):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div id="tabs">	<ul>
		<li><a href="#tabs-1">Tab 1</a></li>
		<li><a href="#tabs-2">Tab 2</a></li>
		<li><a href="#tabs-3">Tab 3</a></li>
	</ul>
	<div id="tabs-1">
		first tab
	</div>
	<div id="tabs-2">
		second tab
	</div>
	<div id="tabs-3">
		third tab
	</div>
</div>

 

Demo

  • init

    how do i maintain current tab after refresh, the following is my code

    —–script
    $(document).ready(function(){

    $(‘#tabs div’).hide();

    $(‘#tabs div:first’).show();

    $(‘#tabs ul li:first’).addClass(‘active’);

    $(‘#tabs ul li a’).click(function(){

    $(‘#tabs ul li’).removeClass(‘active’);

    $(this).parent().addClass(‘active’);

    var currentTab = $(this).attr(‘href’);

    $(‘#tabs div’).hide();

    $(currentTab).show();

    return false;

    });

    });

    html—

    Users

    Department

    Contract

    Payroll

    Medical Scheme

    </div

    </div