当前位置: 首页 > 知识库问答 >
问题:

单独切换隐藏/显示和切换全部隐藏/显示不能正确地协调。有小费吗?(jquery)

燕钟展
2023-03-14

我为小工作项目做了过滤器,我需要解决的最后一个bug是隐藏/显示问题。当我通过点击标题显示一些批注并稍后使用该按钮时,该按钮显示所有批注,但它不会在第二次点击时隐藏它们。你知道如何更改代码以使其正常工作吗?提前谢谢你!

null

/* toggle button all anotation*/

$('#makeVisible').on('click', function () {


    $(this).text($(this).text() == 'Show' ? 'Show' : 'Hide');

    $(".anotace").toggleClass("hide");
    $(".anotace").toggleClass("show");

    });


/*toggle one anotation to click its header */

        $('.nazev').click(function(){
          $(this).next(".anotace").slideToggle();
    })
        .anotace {
          display: none;
        }


        .hide {
          display: none;
        }
        .show {
          display: block;
        }
html prettyprint-override"><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>


<button id='makeVisible'> Show </button>


<div class='beseda'> 
        <div class="nazev">Lorem</div>
        <div class="anotace">Ipsum </div>
    </div>
    
<div class='beseda'> 
        <div class="nazev">Lorem</div>
        <div class="anotace">Ipsum</div>
    </div>

<div class='beseda'> 
        <div class="nazev">Lorem</div>
        <div class="anotace">Ipsum</div>
    </div>

null

共有1个答案

夔建章
2023-03-14

您可以尝试如下所示:

$('#makeVisible').on('click', function() {
  var s = $(this).text() != 'Show'

  $(this).text(s ? 'Show' : 'Hide');

  if(s)
    $(".anotace:visible").slideToggle("show");
  else
    $(".anotace:not(:visible)").slideToggle("hide");

});

这将只显示/隐藏未显示/隐藏的内容。
因此,如果单击lorem中的1,然后单击show按钮,则其余的2将切换。

演示

null

/* toggle button all anotation*/

$('#makeVisible').on('click', function() {
  var s = $(this).text() != 'Show'

  $(this).text(s ? 'Show' : 'Hide');

  if(s)
    $(".anotace:visible").slideToggle("show");
  else
    $(".anotace:not(:visible)").slideToggle("hide");

});


/*toggle one anotation to click its header */

$('.nazev').click(function() {
  $(this).next(".anotace").slideToggle();
})
.anotace {
  display: none;
}

.hide {
  display: none;
}

.show {
  display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>


<button id='makeVisible'>Show</button>


<div class='beseda'>
  <div class="nazev">Lorem</div>
  <div class="anotace">Ipsum </div>
</div>

<div class='beseda'>
  <div class="nazev">Lorem</div>
  <div class="anotace">Ipsum</div>
</div>

<div class='beseda'>
  <div class="nazev">Lorem</div>
  <div class="anotace">Ipsum</div>
</div>
 类似资料:
  • 问题内容: 希望这是一个简单的问题。我有一个我想用按钮切换隐藏/显示 问题答案: 看一下jQuery Toggle HTML: jQuery的: 对于jQuery 1.7及更高版本

  • 我有两个按钮导航栏。 当单击div#toggle-menu时,它使div#sidebar-mobile-wrapper显示。 当我点击div#toggle-function时,它会显示div#right-content-mobile。 都奏效了。但现在我想,一次只能显示一个div。所以当我点击#toggle-menu时,如果div#right-content-mobile是可见的,它将被隐藏和si

  • 本文向大家介绍vue实现密码显示隐藏切换功能,包括了vue实现密码显示隐藏切换功能的使用技巧和注意事项,需要的朋友参考一下 先给大家分享效果图: 具体实现代码如下所示: html: script: 注:带小眼睛的睁开闭合。 总结 以上所述是小编给大家介绍的vue实现密码显示隐藏切换功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 问题内容: 您如何在Tkinter中显示和隐藏小部件?我想有一个输入框,但不要一直显示它。有人可以向我展示在tkinter中显示和隐藏条目小部件和其他小部件的功能吗?我希望能够在没有多个帧的情况下执行此操作。 问题答案: 这已经在stackoverflow上得到了回答。简短的答案是,您可以使用grid_remove,如果先前是通过网格添加的,则将导致该小部件被删除。记住小部件的位置,因此只需简单地

  • 本文向大家介绍jQuery实现的导航条切换可显示隐藏,包括了jQuery实现的导航条切换可显示隐藏的使用技巧和注意事项,需要的朋友参考一下 用jQuery实现一些导航条切换,显示隐藏,主要运用的技术有slideToggle( ),toggeClass( ),toggle( ): 代码如下: 效果图:

  • 本文向大家介绍js实现简易点击切换显示或隐藏,包括了js实现简易点击切换显示或隐藏的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js实现简易点击切换显示或隐藏的具体代码,供大家参考,具体内容如下 html: css: js: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我是jQuery的新手,我试图在不使用jQuery的切换函数的情况下创建一个show/hide切换按钮,但我不知道下面的代码有什么问题。 “隐藏”按钮可成功隐藏段落。隐藏部分起作用了。它添加了一个类“show”,删除了类“hide”,并更改了按钮的文本。我使用Dev工具来查看这个部分,这个部分正在工作,但是再次点击按钮就不工作了,即show部分。 null null

  • 是否可以使用图表的图例切换显示/隐藏系列? 我的的大多数名称都很长,如果它们被写了两次,看起来很奇怪,一次是在图例中,这样您就可以知道哪个颜色属于哪个,第二次是在之外切换它们。 Edit1:也许我不清楚,即使没有内置函数,我也可以使用一些输入来了解变通方法的样子,因为我什么都想不出来。