我遇到的问题是,当单击活动按钮时,它不会删除其活动状态并隐藏p标记
$('.section button').click(function () {
$('.section p').hide();
$('button').removeClass('active');
$(this).toggleClass('active').closest('div').children('p').toggle();
});
我确定有更好的方法可以做到这一点,但我似乎无法弄清楚
答案 0 :(得分:2)
问题是你首先隐藏了所有p
个元素,然后你正在调用当前p
元素上的切换,它将以任何方式显示它,因此你的切换命令将被视为无效< / p>
按钮添加/删除类也是如此
var $ps = $('.section p');
var $buttons = $('.section button').click(function () {
$buttons.not(this).removeClass('active');
var $target = $(this).toggleClass('active').closest('div').children('p').toggle();
$ps.not($target).hide();
});
演示:Fiddle
您需要忽略质量removeClass()
/ hide()
操作中的当前按钮/ p元素