首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript对象之间的比较

Javascript对象之间的比较
EN

Stack Overflow用户
提问于 2009-01-16 01:17:17
回答 1查看 1.2K关注 0票数 1

我已经用jQuery为我的网站做了一个简单的手风琴…它工作得很好,但我最近开始做一个更改,如果你点击当前打开的片段标题(可点击区域向上/向下滑动),它应该会关闭当前部分。

代码语言:javascript
复制
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属性。

有什么建议可以让对象比较起作用吗?或者其他小贴士?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-01-16 03:27:01

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

代码语言:javascript
复制
if (slideMenu.activated[0] == menuObj[0]) {
    ...
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/449176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档