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

增强配饰

汪修诚
2023-03-14

我有一个手风琴,它在我的页面内工作得很好。当你点击标题时,隐藏的div会显示,当你再次点击它时,它会再次隐藏。我想通过增加一个功能来增强手风琴,使手风琴一次只显示一个项目。换句话说,如果我打开了一个项目,并单击另一个标题,则当前打开的项目将自动关闭。

这是HTML

                    <div class="cap">
                            <div class="capitulo"><h2 class="cap2">Capitulo Segundo</h2></div>  
                                <div class="capcierre2">            
                                    <h3>DE LOS DEBERES DEL PROFESIONISTA.</h3>      


            <p class="art">Articulo 2º</p>
                    <p>El Arquitecto debe poner todos sus conocimientos científicos y recursos técnicos en el desempeño de su profesión.</p>

                            </div>  
                    </div>

这是我的jQuery代码

 <script>
 jQuery(function($){
 var cap = $('.cap [class^="capcierre"]').hide();

 $('h2[class^="c"]').on('click', function(){
    cap.filter('.capcierre' + this.className.slice(-1)).slideToggle(200);
     });
 });
 </script>

如您所见,我有一个main(div class=“cap”)后跟一个(div class=“capitalo”),然后每个h2的可点击标题(h2 class=“cap2”),后跟一个类“cap3”、“cap4”等。然后隐藏的div是(div class=“capcierre2”)“capcierre3”、“capcierre4”等。

它工作得很好,但是我可以向Jquery添加什么来隐藏手风琴中的所有项目,而只显示一个?

谢谢

共有2个答案

夏博
2023-03-14

您可以尝试隐藏所有可见的capcierre元素。

jQuery(function($){
   
  var cap = $('.cap [class^="capcierre"]').hide();

  $('h2[class^="c"]').on('click', function(){
    var target = cap.filter('.capcierre' + this.className.slice(-1));
    $('.cap [class^="capcierre"]:visible').not(target).slideUp();
    target.slideToggle(200);
  });
  
});
梅玉堂
2023-03-14

你可以

jQuery(function ($) {
    var cap = $('.cap [class^="capcierre"]').hide();

    $('h2[class^="c"]').on('click', function () {
        var $this = cap.filter('.capcierre' + this.className.slice(-1)).slideToggle(200);
    cap.not($this).slideUp();
    });
});

演示:小提琴

更简洁的方法(假设示例中给出的结构)

jQuery(function($) {
  var $caps = $('.cap .capcierre');

  $('.cap .capitulo h2').on('click', function() {
    var $capcierre = $(this).parent().next();
    $capcierre.slideToggle(200);
    $caps.not($capcierre).slideUp();
  });
});
.cap .capcierre {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="cap">
  <div class="capitulo">
    <h2 class="cap1">Capitulo Segundo</h2>
  </div>
  <div class="capcierre capcierre1">
    <h3>DE LOS DEBERES DEL PROFESIONISTA.</h3> 
    <p class="art">Articulo 2º</p>
    <p>El Arquitecto debe poner todos sus conocimientos científicos y recursos técnicos en el desempeño de su profesión.</p>
  </div>
  <div class="capitulo">
    <h2 class="cap2">Capitulo Segundo</h2>
  </div>
  <div class="capcierre capcierre2">
    <h3>DE LOS DEBERES DEL PROFESIONISTA.</h3> 
    <p class="art">Articulo 2º</p>
    <p>El Arquitecto debe poner todos sus conocimientos científicos y recursos técnicos en el desempeño de su profesión.</p>
  </div>
  <div class="capitulo">
    <h2 class="cap3">Capitulo Segundo</h2>
  </div>
  <div class="capcierre capcierre3">
    <h3>DE LOS DEBERES DEL PROFESIONISTA.</h3> 
    <p class="art">Articulo 2º</p>
    <p>El Arquitecto debe poner todos sus conocimientos científicos y recursos técnicos en el desempeño de su profesión.</p>
  </div>
</div>
 类似资料:
  • 我正在逐个迭代字符串对象列表中的元素: 在这里,每次我调用list上的get()时,列表都会从其一端一直迭代到第i个元素——因此上面循环的复杂性是O(n^2)。 是a.)对于增强型for循环,与上面相同,还是b.)对于循环,将指针保持在最后一个指针所在的位置,因此下面循环的复杂性是O(n)? 如果上面的情况(b)——我想是这样的——在列表上使用迭代器有什么好处吗。这是简单的迭代--没有回头路 蒂亚

  • ZGC 或 Z 垃圾收集器是在 Java 11 中引入的,作为一种低延迟垃圾收集机制。ZGC 确保垃圾收集暂停时间不依赖于堆大小。无论堆大小是 2MB 还是 2GB,它都不会超过 10 毫秒。 但是 ZGC 在将未使用的堆内存返回给操作系统方面存在限制,例如 G1 和 Shenandoah 等其他 HotSpot VM GC。以下是使用 Java 13 完成的增强功能: ZGC 默认将未提交的内存

  • 除了agent和环境之外,强化学习的要素还包括策略(Policy)、奖励(reward signal)、值函数(value function)、环境模型(model),下面对这几种要素进行说明: 策略(Policy) ,策略就是一个从当环境状态到行为的映射; 奖励(reward signal) ,奖励是agent执行一次行为获得的反馈,强化学习系统的目标是最大化累积的奖励,在不同状态下执行同一个行

  • 我有以下ElasticSearch DSL查询 我希望在与字段匹配时提高得分,也希望在字段匹配时降低得分。 我试过很多事情,比如: 或 但不能让它工作。我也尝试过将should和must等结合起来,但并没有走得太远--甚至不值得分享。有没有一种简单的方法可以做到这一点,而不需要重新对我所有的文档进行重新德行/重新打分?使用ES查询(而不是ES-DSL)的答案也会很有帮助。

  • Java 是静态语言。但是 JVM 却不那么静态。静态语言的好处是,IDE 可以提供很高级的重构功能。缺点是你的代码 会比较僵化,像 Javascript 一样的动态语言(或者说,后绑定语言),在编写程序时的随心所欲,估计 Java 程序员 是享受不到了。 但是好在 Java 还提供了“反射”。 在任何时候,你如果想在运行时决定采用哪个实现类,或者调用哪个方法,通过反射都可以实现,虽然不那么方便

  • 插件可以增加 Vue 的全局/实例属性和组件选项。在这些情况下,在 TypeScript 中制作插件需要类型声明。庆幸的是,TypeScript 有一个特性来补充现有的类型,叫做模块补充 (module augmentation)。 例如,声明一个string类型的实例属性$myProperty: // 1. 确保在声明补充的类型之前导入 'vue' import Vue from 'vue'