我已经用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属性。
有什么建议可以让对象比较起作用吗?或者其他小贴士?
谢谢!
发布于 2009-01-16 03:27:01
您可能保存的是jQuery对象($调用的结果),而不是本机元素。每次执行$(myEl)时,都会创建一个新对象,引用将不会匹配,但原生元素将匹配。尝试:
if (slideMenu.activated[0] == menuObj[0]) {
...
}
https://stackoverflow.com/questions/449176
复制相似问题