Remember which tab was active after refresh

前端 未结 17 2243
眼角桃花
眼角桃花 2020-11-27 04:43

I\'m using jquery tabs on a web page and when the page is refreshed it loses what ever tab I had been on and goes back to the first tab.

Has anyone come across this

17条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-11-27 05:17

    Like others I was struggling with my ui-tabs cookie history in jQueryUI 1.10. Thanks to Harry's solution and some other online documentation I refer to in the code below I now have a working non-cookie solution! I was able to test in Firefox 18.0.1 and IE 9.0.12. According to my resources, Chrome, Firefox, Safari and IE8 & above support Session Storage.

      $(function() {
        //  jQueryUI 1.10 and HTML5 ready
        //      http://jqueryui.com/upgrade-guide/1.10/#removed-cookie-option 
        //  Documentation
        //      http://api.jqueryui.com/tabs/#option-active
        //      http://api.jqueryui.com/tabs/#event-activate
        //      http://balaarjunan.wordpress.com/2010/11/10/html5-session-storage-key-things-to-consider/
        //
        //  Define friendly index name
        var index = 'key';
        //  Define friendly data store name
        var dataStore = window.sessionStorage;
        //  Start magic!
        try {
            // getter: Fetch previous value
            var oldIndex = dataStore.getItem(index);
        } catch(e) {
            // getter: Always default to first tab in error state
            var oldIndex = 0;
        }
        $('#tabs').tabs({
            // The zero-based index of the panel that is active (open)
            active : oldIndex,
            // Triggered after a tab has been activated
            activate : function( event, ui ){
                //  Get future value
                var newIndex = ui.newTab.parent().children().index(ui.newTab);
                //  Set future value
                dataStore.setItem( index, newIndex ) 
            }
        }); 
        }); 
    

提交回复
热议问题