jQuery 面板不会切换到活动状态 Class/Collapse 一次一个
jQuery Panel Will Not Toggle Active Class/Collapse One at a Time
我有两个 div - 一个面板 div 控制另一个 div 上显示的内容。问题是当面板处于活动状态时以及面板下的子项也处于活动状态时,我必须应用 'selected' class。现在,它不会 "toggle" 选定 class 处于活动状态。这是我目前所拥有的...
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
它是按照书面的方式工作的,也许不是预期的那样。有两个可能不是很明显的方面导致了你的困惑。
首先,这也是我犯的一个常见错字,当在切换(或 addClass 或 removeClass)中使用 class 名称时,请确保不包括 .
选择器
//$(this).toggleClass('.selected');
$(this).toggleClass('selected');//should be this
// ^no `.`
注意:使用此方法仍会保持原始 "selected" class 完好无损。也许你应该在这行代码前加上
$('.collapse .selected').removeClass('selected');
其次,点击回调中的 this
绑定将成为被点击的元素,在您选择子项的示例中,它是 <p>
元素。在这些情况下,如果您想要设置整个部分的样式,也许 selected
class 应该位于父级 div 上。很难判断,因为您遗漏了 selected
class.
的样式
我有两个 div - 一个面板 div 控制另一个 div 上显示的内容。问题是当面板处于活动状态时以及面板下的子项也处于活动状态时,我必须应用 'selected' class。现在,它不会 "toggle" 选定 class 处于活动状态。这是我目前所拥有的...
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
它是按照书面的方式工作的,也许不是预期的那样。有两个可能不是很明显的方面导致了你的困惑。
首先,这也是我犯的一个常见错字,当在切换(或 addClass 或 removeClass)中使用 class 名称时,请确保不包括 .
选择器
//$(this).toggleClass('.selected');
$(this).toggleClass('selected');//should be this
// ^no `.`
注意:使用此方法仍会保持原始 "selected" class 完好无损。也许你应该在这行代码前加上
$('.collapse .selected').removeClass('selected');
其次,点击回调中的 this
绑定将成为被点击的元素,在您选择子项的示例中,它是 <p>
元素。在这些情况下,如果您想要设置整个部分的样式,也许 selected
class 应该位于父级 div 上。很难判断,因为您遗漏了 selected
class.