jquery - 切换类无法正常工作

标签 jquery

我有一个 Accordion (一种)。一切正常,除了...

主要规则:单击方 block ,显示文本,并将背景从灰色更改为红色(工作), 单击不同,显示文本,并将单击的方 block 上的背景更改为红色(工作) 单击同一个方 block ,折叠文本并将背景颜色从红色更改为灰色(不起作用)。代码有什么问题吗?

任何这方面的帮助将不胜感激。

演示:jsFiddle

jQuery:

$( document ).ready(function() {
$('.v3').each(function (i) {

    $(this).attr('data-menu', 'nr' + i);
});

$('.describe .describeModule').each(function (i) {
    $(this).attr('id', 'nr' + i);
});


$('.v3').click(function () {

                $('.v3').removeClass('activeModule');
                $(this).toggleClass( 'activeModule' );

                menu = $("#" + $(this).data("menu"));

                $(".describeModule").not(menu).slideUp("slow");
                menu.slideToggle("slow");
            });
});

HTML

<div class="container">
<div class="v3"></div>
<div class="v3"></div>
<div class="v3"></div>
</div>

  <div class="describe">
    <div class="describeModule">one</div>
    <div class="describeModule">two</div>
    <div class="describeModule">three</div>
 </div>

最佳答案

当您删除 activeModule 类时,跳过单击的元素,这就是为什么在下一行中,当您调用 .toggleClass() 时,它会添加 activeModule 类。

$('.v3').not(this).removeClass('activeModule');

脚本

$( document ).ready(function() {
    $('.v3').each(function (i) {

        $(this).attr('data-menu', 'nr' + i);
    });

    $('.describe .describeModule').each(function (i) {
        $(this).attr('id', 'nr' + i);
    });


    $('.v3').click(function () {

                    $('.v3').not(this).removeClass('activeModule');   //change here skip the clicked element 
                    $(this).toggleClass( 'activeModule' ); 

                    menu = $("#" + $(this).data("menu"));

                    $(".describeModule").not(menu).slideUp("slow");
                    menu.slideToggle("slow");
                });
});

FIDDLE

关于jquery - 切换类无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29896430/

相关文章:

jquery - 我可以将 jQuery.ajax 与 Angular JS Promise api 一起使用吗?

javascript - Accordion 打开但无法关闭

javascript - jQuery animate() 仅适用于第二次点击

javascript - 设置日期选择器的值?

javascript - 上一个/下一个导航代码更加高效和灵活

jquery - 如何在 jQuery 中创建一个平坦的长阴影范围

javascript - 为什么 $.isEmptyObject 在这里无效

javascript - 如何创建一个充满链接或 `<a>` 标签的下拉菜单?

Jquery if contenteditable=true 事件

javascript - 当元素在视口(viewport)中时应用选择器