使用jquery在切换上添加和删除css图像类

时间:2016-04-02 04:04:35

标签: javascript jquery css html5 css3

我试图在用户点击artcile的h3元素时切换菜单,就像手风琴一样,但有点不同。

我无法实现的是,当调用元素的slideToggle函数时,图像不会显示也不会更改。但是,slideToggle工作正常,它只是我需要帮助的图像。

HTML: -

<div class="pages">
    <article class="collapsible expanded collapsed">
        <h3><?php echo $lang->xlate('presentation-b');?></h3>
    </article>

    <div class="content">
        <ul>
            <li>
                <?php echo $lang->xlate('presentation-c');?> </li>



            <li>
                <?php echo $lang->xlate('presentation-d');?> </li>



            <li>
                <?php echo $lang->xlate('presentation-e');?> </li>
        </ul>
    </div>
</div>

CSS

#paragraph .pages .collapsible {
  padding: 2px;
  cursor: pointer;
  font-weight: bold;
}
#paragraph .pages .collapsible .expanded  {background: url('../img/list.png') no-repeat left top;}
#paragraph .pages .collapsible .collapsed {background: url('../img/pagination.gif') no-repeat left top;}

jQuery的: -

        $('.collapsible').click(function(){
        $coll = $(this);
        $content = $coll.next();
        $content.slideToggle(500, function () {
         //execute this after slideToggle is done
         //change text of header based on visibility of content div
                    if($(this).hasClass('expanded'))
                    {
                        $(this).toggleClass('collapsed expanded');
                    }
                    else
                    {
                        $(this).toggleClass('expanded collapsed');
                    } 
        });
    });

2 个答案:

答案 0 :(得分:1)

添加或删除类时,您不需要类指示符fetch('data.json') // nope 。这意味着您不会切换每个州的背景图像。

"."

所以你的代码应该是

$(this).addClass('.collapsed').removeClass('.expanded');

答案 1 :(得分:1)

在添加和删除类时删除类名前的.

$(this).addClass('expanded').removeClass('collapsed');

您也可以使用toggleClass()在课程之间切换。

$(this).toggleClass('collapsed expanded');

喜欢:

$('.collapsible').click(function() {
    $coll = $(this);
    $content = $coll.next();
    $content.slideToggle(500, function() {
        //execute this after slideToggle is done
        //change text of header based on visibility of content div
        $(this).toggleClass('collapsed expanded');
    });
});
相关问题