jQuery手风琴删除兄弟姐妹类

时间:2011-06-14 01:29:30

标签: jquery jquery-ui jquery-ui-accordion

当我点击标题以展开菜单时,我可以更改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”吗?

谢谢!

2 个答案:

答案 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;
});

});