JQuery аккордеон удалить класс братьев и сестер - PullRequest
0 голосов
/ 14 июня 2011

Я могу изменить 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 ]

1 голос
/ 24 июня 2011

Итак, попробуйте это, работает в моем местном ..

$(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;
});
});
0 голосов
/ 14 июня 2011

Не уверен, что хочешь, но, может быть, что-то вроде этого?Иначе вы можете попробовать тоггл класс?

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

});

...