【问题标题】:Comparison between Javascript objectsJavascript对象之间的比较
【发布时间】:2009-01-16 01:17:17
【问题描述】:

我使用 jQuery 为我的网站制作了一个简单的手风琴...效果很好,但我最近开始进行更改,如果您单击当前打开的段标题(可单击区域向上/向下滑动) ,它应该关闭当前部分。

var sideMenu = {
        activated: {},
        setup: function() {
        $('.menu-category-heading').bind('click', function() { 
                                                      sideMenu.slideMenu($('ul', $(this).parent()));
                                                      });

        }, 

        slideMenu: function(menuObj) {

            if (sideMenu.activated == menuObj) {

                $(sideMenu.activated).slideUp(400);
                sideMenu.activated = null;
                console.log('same');

            } else {

                $(sideMenu.activated).slideUp(400);
                menuObj.slideDown(500);
                sideMenu.activated = menuObj;
                console.log('new');
            }
        }


    }

由于某种原因,比较永远不会起作用...如果我添加 $(menuObj).attr('id') 并且激活相同,它就会起作用。但这并不理想,因为并非所有项目都具有 id 属性。

关于使对象比较起作用的任何建议?还是有其他提示?

谢谢!

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您可能正在保存一个 jQuery 对象($ 调用的结果)而不是本机元素。每次您执行 $(myEl) 时,都会创建一个新对象,并且引用不会匹配,但本机元素会。试试:

    if (slideMenu.activated[0] == menuObj[0]) {
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多