不确定这里有什么问题。所有其他代码工作正常并且已经永远但是现在我只是尝试将另一个类添加到您单击的元素并且该函数仍然正常工作它似乎忽略了我的.addClass()。
$('.item-main-section, .item-status').click( function () {
var slideHeight = $(this).parent().children('.item-slide-section').height();
//Not Doing Anything
if ($('item-slide-section').hasClass('current-open')) {
$('item-slide-section').removeClass('current-open');
}
$(this).parent().children('item-slide-section').addClass('current-open');
//Not Doing Anything ^^^^
if ($(this).parent().height() > 50) {
$(this).parent().animate({height: '50px'}, 300);
$(this).parent().children('item-slide-section').animate({bottom: '0px'}, 300);
} else {
$(this).parent().animate({height: slideHeight + 50 + 'px'}, 300);
$(this).parent().children('item-slide-section').animate({bottom: slideHeight - 5 + 'px'}, 300);
$(this).parent().siblings('.item-wrapper').animate({height: '50px'}, 300);
$(this).parent().siblings('.item-wrapper').children('item-slide-section').animate({bottom: '0px'}, 300);
}
});
答案 0 :(得分:5)
您忘记了选择器中的.
。
这里:
$(this).parent().children('.item-slide-section').addClass('current-open');
在这里:
if ($('.item-slide-section').hasClass('current-open')) {
$('.item-slide-section').removeClass('current-open');
}
一般来说,像这样的问题不适合这个网站。
考虑下次在问题行(或其下方)上方使用debugger;
语句并检查选择器是否实际匹配任何内容。
如果你这样做了,你可以看到选择的长度为0,因此,元素没有子元素。
所以基本上,下次你遇到这类问题时,先问SO:
debugger;
语句。如果您不知道如何使用调试器逐步执行代码,请考虑阅读http://discover-devtools.codeschool.com/。 console.log
来验证您认为您对环境的了解。答案 1 :(得分:0)
您似乎缺少一个类选择器 - 您使用的是element selector item-slide-section
而不是class selector .item-slide-section
$(this).parent().children('.item-slide-section').addClass('current-open');
另一点是$(this).parent().children()
与$(this).siblings()
相同,请尝试
$(this).siblings('.item-slide-section').addClass('current-open');
同样删除当前打开的类可以改为
$('.item-slide-section.current-open').removeClass('current-open');