<ul id="MenuUL" class="page-sidebar-menu page-header-fixed" data-keep-expanded="false" data-auto-scroll="true">
                    <li id="m0" class="nav-item start active open">
                        <a href="javascript:;" class="nav-link nav-toggle">
                            <i class="icon-basket"></i>
                            <span class="title">订单管理</span>
                            <span class="selected"></span>
                            <span class="arrow open"></span>
                        </a>
                        <ul class="sub-menu">
                            <li id="m0_0" class="nav-item active" onclick="test(this)">
                                <a href="~/Admin/Order/Send" class="nav-link">
                                    <span class="title">发货处理</span>
                                    <span class="selected"></span>
                                    <!--正常情况可设置badge-success样式-->
                                    <span id="iSendNum" class="badge badge-danger">0</span>
                                </a>
                            </li>
                            <li id="m0_1" class="nav-item" onclick="test(this)">
                                <a href="~/Admin/Order/Return" class="nav-link">
                                    <span class="title">退货处理</span>
                                    <span id="iRefundNum" class="badge badge-danger">0</span>
                                </a>
                            </li>
                            <li id="m0_2" class="nav-item" onclick="test(this)">
                                <a href="~/Admin/Order/Index" class="nav-link">
                                    <span class="title">全部订单</span>
                                </a>
                            </li>
                        </ul>
                    </li>
                    <li id="m1" class="nav-item">
                        <a href="javascript:;" class="nav-link nav-toggle">
                            <i class="icon-user"></i>
                            <span class="title">会员管理</span>
                            <span class="arrow"></span>
                        </a>
                        <ul class="sub-menu">
                            <li id="m1_0" class="nav-item" onclick="test(this)">
                                <a href="~/Admin/User/Index" class="nav-link">
                                    <span class="title">所有会员</span>
                                </a>
                            </li>
                        </ul>
                    </li>
                    <li id="m2" class="nav-item">
                        <a href="javascript:;" class="nav-link nav-toggle">
                            <i class="icon-social-dribbble"></i>
                            <span class="title">产品管理</span>
                            <span class="arrow"></span>
                        </a>
                        <ul class="sub-menu">
                            <li id="m2_0" class="nav-item" onclick="test(this)">
                                <a href="~/Admin/Product/Index" class="nav-link">
                                    <span class="title">所有产品</span>
                                </a>
                            </li>
                            <li id="m2_1" class="nav-item" onclick="test(this)">
                                <a href="#" class="nav-link">
                                    <span class="title">印象标签管理</span>
                                </a>
                            </li>
                        </ul>
                    </li>
                    <li id="m3" class="nav-item">
                        <a href="javascript:;" class="nav-link nav-toggle">
                            <i class="icon-pointer"></i>
                            <span class="title">信息管理</span>
                            <span class="arrow"></span>
                        </a>
                        <ul class="sub-menu">
                            <li class="nav-item">
                                <a href="#" class="nav-link">
                                    <span class="title">公告管理</span>
                                </a>
                            </li>
                            <li class="nav-item">
                                <a href="#" class="nav-link">
                                    <span class="title">新闻管理</span>
                                </a>
                            </li>
                            <li class="nav-item">
                                <a href="#" class="nav-link">
                                    <span class="title">评论管理</span>
                                </a>
                            </li>
                        </ul>
                    </li>
</ul>
    <script type="text/javascript">
        $(function () {
            var mid = $.cookie("menu_mid");
            alert("mid: " + mid);         //此处有时取的对,有时取的不对,有时取的还是[object][object]    
        });        function test(obj) {
            var id = $(obj).attr("id");
            $.cookie("menu_mid", id);
        }
    </script>alert("mid: " + mid);   这句不知道为什么有时取的不是我刚设置的内容
说明一下,以上的html和js是在母版页中,菜单的链接都嵌了这个母版页。按我的想法是,点击后执行了test(obj)方法后,会再次打开这个页执行$(function(){});中的内容,mid取的内容为什么有时不是刚刚设置的id呢……。

解决方案 »

  1.   

    我猜是obj对象不对,var id = $(obj).attr("id");
    1)是不是鼠标事件?
    2)是不是绑定事件的obj,里面有子元素,cookie得到的有可能是子元素id。
    这样一来,当鼠标点击子元素外围的时候,获取到的id是对的,当点击在子元素上则或获取到的id是子元素id,就不对了。
      

  2.   

    不好意思,刚才没看你html代码,看了,如你说的html+js,应该不会出现你说的id不对问题呀。
    除非不是原生代码,原来click事件是通过jquery绑定的,那倒是有可能,可能性就是刚才说的事件冒泡问题,如:
      $(".sub-menu li").click(function(event) {
      test(event.target);
      }),有可能取到的就是span,id
      

  3.   

    $.cookie("menu_mid", id, { expires: 1 }); 加了失效时间还是一样的情况。function test(obj) {
                var id = $(obj).attr("id");
                $.cookie("menu_mid", id, { expires: 1 });
            }
    这个设置cookie是没有问题的,我在test中加alert(id)是我点击的,只是在重新打开这页面时取cookie就对了,也没找出规律,也不是上一次点击的内容。
      

  4.   

    你在test(obj)内加一行console.log($(this).text()+"设置了cookie"),在var mid = $.cookie("menu_mid");后加一行console.log($(this).text()+"读取了cookie")。如果text()获取不到你想要的区别,可以加id,获取元素的id。看看执行顺序如何,有可能跟你想像的执行顺序有差异。
      

  5.   

    test(obj)应该不能用$(this).text()来获取,你传递了obj,那就是console.log($(obj).attr("id")),也有可能你调用时的obj设置错了。我去,元素传过来怎么还需要$()包装呢?你都用jQuery了,何不直接传递jQuery对像,为什么要传JS元素对象过来呢?