1

我一直在努力使用上述技术使用 cookie 来保持表格菜单的会话状态。长期以来,这一直是一个开放的错误,老实说,我的 jquery 技能不存在:

它在功能上几乎是完美的,尽管我确信可以进行更好的重写这一行是以下问题

**$(activate).parent().addClass('active');** 

这是代码:

<script type='text/javascript'>
        $(document).ready(function() {
            var cookie = $.cookie('menu_cookie');
            if (cookie === null) {
                //create cookie
                $.cookie('menu_cookie', '#tab-1!88!#tab ul li:first');
            }
            var currentTab = $.cookie('menu_cookie').split('!88!');
            var val1 = currentTab[0];
            var val2 = currentTab[1];
            alert(val1);
            alert(val2);
            //Hide all tabs
            $('#tab div').hide();
            //Show current tab, loaded from cookie
            $(val1).show();
            //Show hidden child div
            if (val1 === '#tab-1') {
                $('.fb-like-box').show();
            }
            var x = val2.substring(0, 1);
            //Chech if init Session        
            if (x === '#') {
                $(currentTab[1]).addClass('active');
            } else {
                var activate = JSON.parse(currentTab[1]);
                //Get json data for active
                alert("xxx");
                //alert(jsonp);
                **$(activate).parent().addClass('active');**
            }
            //On click function
            $('#tab ul li a').click(function() {
                $('#tab ul li').removeClass('active');
                $(this).parent().addClass('active');
                var currentTab = $(this).attr('href');
                //Hide all tabs
                $('#tab div').hide();
                if (currentTab === "#tab-1") {
                    $('.fb-like-box').show();
                }
                $(currentTab).show();
                var sjson = JSON.stringify(this);
                var cooker = currentTab + '!88!' + sjson;
                alert(sjson);
                $.cookie('menu_cookie', cooker);
                return false;
            });
        });
    </script>

所以基本上我想使用cookie传递这个对象,然后分配我想做的事情

$(this).parent().addClass('active');

通过 JSON 传输“this”对象。调试警报让我猜测实际上发送了正确的数据,这让我相信问题出在上面提到的那一行

使用非传输对象时,选定的菜单选项卡会很好地突出显示。cookie 用于存储相同的对象,以确保在单击子菜单中的某个链接后重新加载页面时选择最后选择的选项卡。

故障线路会将适当的类分配给最后选择的菜单选项卡,但无法正常工作。

谢谢!

4

0 回答 0