当我点击标题以展开菜单时,我可以更改CSS。但是,已扩展的其他“标题”无法更改为“非活动”类。 下面是我的HTML
<dt class="productsCat"><a href="/" class="productsName">Category 1</a></dt>
<dd class="subCat"><a href="<?php echo $subCategory->getUrl()?>">Sub Category 1</a></dd>
<dt class="productsCat"><a href="/" class="productsName">Category 2</a></dt>
<dd class="subCat"><a href="<?php echo $subCategory->getUrl()?>">Sub Category 2</a></dd>
这是我的jQuery
jQuery(document).ready(function(){
jQuery("dl#narrow-by-list> dd:not(:first)").hide();
jQuery("dl#narrow-by-list> dt a").click(function(){
jQuery("dl#narrow-by-list> dd:visible").slideUp("fast");
jQuery(this).parent().next().slideDown("fast");
jQuery(this).parent().removeClass("productsCat");
jQuery(this).parent().addClass("openSub");
return false;
});
});
我应该如何删除“openSub”类,并在其中一个兄弟姐妹处于活动状态时使用现有的类“productsCat”吗?
谢谢!
答案 0 :(得分:1)
所以,试试这个,在我当地工作..
$(function() {
$("dl#narrow-by-list> dd:not(:first)").hide();
$("dl#narrow-by-list > dt").first().addClass('openSub');
$(".productsName").click(function () {
if(!$(this).closest('dt').hasClass('openSub')) {
$("dl#narrow-by-list> dd:visible").slideUp("fast");
}
$(this).parent().next().slideDown("fast");
$(this).parent().each(function () {
$(this).parents('dl').find('dt').each(function() {
$(this).addClass('productsCat');
$(this).removeClass('openSub');
});
$(this).closest('dt').toggleClass('productsCat openSub');
});
return false;
});
});
答案 1 :(得分:0)
不确定你想要什么,但也许是这样的?否则你可以试试toggleclass吗?
jQuery(document).ready(function () {
jQuery("dl#narrow-by-list> dd:not(:first)").hide();
jQuery("dl#narrow-by-list> dt a").click(function () {
jQuery("dl#narrow-by-list> dd:visible").slideUp("fast");
jQuery(this).parent().next().slideDown("fast");
jQuery(this).parent().each(function () {
if (jQuery(this).hasClass('productsCat')) {
jQuery(this).removeClass('productsCat');
jQuery(this).addClass("openSub");
}
});
return false;
});
});