我有两个div - 一个面板div控制另一个div上显示的内容。问题是我必须应用一个'选择'面板处于活动状态时以及面板下的子项也处于活动状态时的类。现在,它没有"切换"激活时选定的类。这就是我到目前为止......
的jQuery
$('.options-display .options-list').hide();
$('#option-1').show(); // change to whatever is shown first on page
$('.collapse p').click(function(){
$(this).toggleClass('.selected');
var target = '#' + $(this).data('target');
$('.options-list').not(target).hide();
$(target).show();
});
的jsfiddle
答案 0 :(得分:1)
它按照书面工作,可能不是预期的。有两个方面可能并不明显导致你的困惑。
首先,这是一个常见的拼写错误,当我在切换(或addClass或removeClass)中使用类名时,请确保您没有为选择器包含.
//$(this).toggleClass('.selected');
$(this).toggleClass('selected');//should be this
// ^no `.`
要注意:使用这种方法仍然会留下原始的"选择"班级完整。也许你应该在这行代码前加上
$('.collapse .selected').removeClass('selected');
其次,点击回调中的this
绑定将是单击的元素,并且在您选择子项时的示例中,它是<p>
元素。如果您想要整个部分的样式,那么在这些情况下,selected
类可能应该在父div上。当你遗漏了selected
类的样式时很难说。