jQuery 手风琴删除兄弟姐妹类

发布于 2024-11-15 10:03:12 字数 1033 浏览 2 评论 0原文

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

谢谢你!

I am able to change the CSS when I clicked on a title to expand a menu. However other 'header' which has been expanded are unable to change to "inactive" class.
Below is my 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>

And here is my 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;
});
});

Any advice how I should remove the class "openSub" and use the existing class "productsCat" from all the other siblings when one is active?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白衬杉格子梦 2024-11-22 10:03:12

所以,试试这个,在我当地有效。

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

So, try this, works in my local..

$(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;
});
});
清风夜微凉 2024-11-22 10:03:12

不确定你想要什么,但也许是这样的?否则你可以尝试切换类吗?

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

});

Not shure what you want, but maybe something like this? Else you could try the 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;
});

});

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文