Jquery 单击标题时切换手风琴图标

Jquery 单击标题时切换手风琴图标,jquery,html,Jquery,Html,我有一个带有链接的页脚,在移动视图中,链接是隐藏的。 当用户单击标题时,链接应向下切换,标题旁边的图标应从加号图标更改为减号图标。如图所示,这是行不通的 当用户再次单击展开的标题时,该部分将折叠,图标应返回加号 HTML CSS 您可以通过执行以下操作使其切换: //When the user clicks on the header/or any other div where you want to display toggle data $('IdOfTheDivInHeader').c

我有一个带有链接的页脚,在移动视图中,链接是隐藏的。

当用户单击标题时,链接应向下切换,标题旁边的图标应从加号图标更改为减号图标。如图所示,这是行不通的

当用户再次单击展开的标题时,该部分将折叠,图标应返回加号

HTML

CSS


您可以通过执行以下操作使其切换:

//When the user clicks on the header/or any other div where you want to display toggle data
$('IdOfTheDivInHeader').click(function(){
 $('IdOfTheDivYouWantToDisplayOnToggle').toggle();
});
您还可以阅读有关jquery方法的更多信息


希望对你有帮助

您可以通过执行以下操作使其切换:

//When the user clicks on the header/or any other div where you want to display toggle data
$('IdOfTheDivInHeader').click(function(){
 $('IdOfTheDivYouWantToDisplayOnToggle').toggle();
});
您还可以阅读有关jquery方法的更多信息


希望对你有帮助

首先对要添加的类进行硬编码,然后执行两个toggleClass调用,如下所示:

$('.collapse').on('shown.bs.collapse', function() {
    $(this).parent().find('.zmdi-minus').toggleClass('zmdi-plus').toggleClass('zmdi-minus');
}).on('hidden.bs.collapse', function() {
    $(this).parent().find('.zmdi-plus').toggleClass('zmdi-plus').toggleClass('zmdi-minus');
});
编辑:

根据您的意见,我们还可以简化:

$('.accordion-toggle').on('click', function() {
    $(this).find('.zmdi').toggleClass('zmdi-plus').toggleClass('zmdi-minus');
});
编辑2:

材质图标似乎要求您将图标放置在标记之间,而不是作为一个类,因此我使用jQuery的html稍微修改了代码,并检查我添加到标记中的硬编码类,在本例中添加,我们检查该类,然后有条件地添加内容。最后,我们切换类:

$('.accordion-toggle').on('click', function() {
    var $icon = $(this).find('.material-icons');

    if ($icon.hasClass('add')) {
        $icon.html('');
    } else {
        $icon.html('');
    }

    $icon.toggleClass('add');
});

首先对要添加的类进行硬编码,然后执行两个toggleClass调用,如下所示:

$('.collapse').on('shown.bs.collapse', function() {
    $(this).parent().find('.zmdi-minus').toggleClass('zmdi-plus').toggleClass('zmdi-minus');
}).on('hidden.bs.collapse', function() {
    $(this).parent().find('.zmdi-plus').toggleClass('zmdi-plus').toggleClass('zmdi-minus');
});
编辑:

根据您的意见,我们还可以简化:

$('.accordion-toggle').on('click', function() {
    $(this).find('.zmdi').toggleClass('zmdi-plus').toggleClass('zmdi-minus');
});
编辑2:

材质图标似乎要求您将图标放置在标记之间,而不是作为一个类,因此我使用jQuery的html稍微修改了代码,并检查我添加到标记中的硬编码类,在本例中添加,我们检查该类,然后有条件地添加内容。最后,我们切换类:

$('.accordion-toggle').on('click', function() {
    var $icon = $(this).find('.material-icons');

    if ($icon.hasClass('add')) {
        $icon.html('');
    } else {
        $icon.html('');
    }

    $icon.toggleClass('add');
});

其思想是当用户单击其中一个标题时,在图标加号和减号之间切换。因此,首先显示一个加号图标,单击一个标题,然后显示减号图标。我刚刚添加了一个按钮来显示我上面提到的功能:。你可以尝试在你的标题上做同样的操作。是的,这是一个基本的切换。我说的是切换标题的图标,而不仅仅是它控制的div的内容。进行了您建议的更改。请尝试以下命令:。它在图标之间切换。我希望这就是你想要的。这个想法是当用户点击其中一个标题时,在加号和减号图标之间切换。因此,首先显示一个加号图标,单击一个标题,然后显示减号图标。我刚刚添加了一个按钮来显示我上面提到的功能:。你可以尝试在你的标题上做同样的操作。是的,这是一个基本的切换。我说的是切换标题的图标,而不仅仅是它控制的div的内容。进行了您建议的更改。请尝试以下命令:。它在图标之间切换。我希望这是您想要的。这更接近,但需要在用户单击时立即触发图标,而不是等到显示折叠状态。我尝试将show.bs.collapse更改为“click”,但不起作用。您好,您可以将show.bs.collapse更改为“click”,但您还需要将选择器更改为对正在单击的元素起作用。请参见我的编辑。我已调整标记,但无法使类切换。我用的是材质图标字体,不是zmdi。请看我最后一次编辑。我想我现在明白了。如果您不想在标记中添加任何内容,可以将toggleClass放在if-else语句之前,它的工作方式也一样。感谢您的帮助。我认为这可能是一种更清晰的方式来解释我试图达到的目的:底部导航就是我的标记,我需要它像上面的手风琴导航一样工作,而不改变标记。它在加载时开始折叠,但如果在移动模式下桌面完全打开并展开,则当前加载将展开。如果一个分区打开,而用户打开了另一个分区,则先前打开的分区应关闭,一次只允许打开一个分区。希望这能澄清这个想法。这更接近,但需要在用户单击时立即触发图标,而不是等到显示折叠状态。我尝试将show.bs.collapse更改为“click”,但不起作用。您好,您可以将show.bs.collapse更改为“click”,但您还需要将选择器更改为对正在单击的元素起作用。请参见我的编辑。我已调整标记,但无法使类切换。我用的是材质图标字体,不是zmdi。请看我最后一次编辑。我想我现在明白了。如果您不想在标记中添加任何内容,可以将toggleClass放在if-else语句之前,它的工作方式也一样。感谢您的帮助。我认为这可能是一种更清晰的方式来解释我试图达到的目的:底部导航就是我的标记,我需要它像上面的手风琴导航一样工作,而不改变标记。它在加载时开始折叠,但如果在移动模式下桌面完全打开并展开,则当前加载将展开。如果一个部分打开,则 d当用户打开另一个分区时,先前打开的分区应关闭,一次只允许打开一个分区。希望这能澄清这个想法。