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

加载时自动切换展开/折叠箭头

冀永寿
2023-03-14

我创建了一个由某些菜单项组成的垂直列表菜单。单击任何菜单项时,列表将展开以显示其内部子菜单项。

还有,当页面加载时,其中一个菜单会根据页面自动展开。我使用了jquery toggle来实现这个功能,它工作得很好。

现在,我用这个菜单放置了折叠/展开箭头,类似于jquery accordian中的菜单,它们在click事件时切换。

我的问题是,当页面加载时,其中一个菜单项折叠,但箭头没有随之折叠,当我再次单击该菜单以折叠/切换回时,箭头开始切换。

情况可以看作,在加载窗口-

菜单1

子菜单

子菜单

子菜单

菜单2

菜单3

菜单4

如您所见,menu1的箭头未关闭。

我的密码到现在为止-

<ul>
<div class="option-heading">
  <li onclick="menu()"> //menu is the vertical menu which shows up.
      <a href="#" >
        <div class="arrow-up">&#9658;</div>
        <div style="display: none;" class="arrow-down">&#9660;</div>
      </a>
  </li>
  </div> 
</ul>    

<script>
$(document).ready(function() {
     $(".option-heading").click(function(){
     $(this).find(".arrow-up, .arrow-down").toggle();
});
});

我用了。加载,但它一次就把所有的箭都展开了。

我想知道的是在加载窗口时切换特定元素的方法。这样其他元素就不会受到影响。就像现在的情况是用箭一样。每当load事件被触发时,它就会切换所有箭头。

共有2个答案

尉迟宣
2023-03-14

我觉得最好用一个div来显示箭头,看看这个:

<div class="arrow expanded"></div>
or
<div class="arrow"></div>

在CSS样式中:

div.arrow {       /* default/collapsed style */
    width: 20px;
    height: 20px;
    backgound: url('address of collapse image'); /* if use image for arrow */
    /* content: &#9658;  */ /* if use special character */
}

div.arrow.expanded { /* expanded style */
    backgound: url('address of expand image'); /* if use image for arrow */
    /* content: &#9660;  */ /* if use special character */
}

使用此方法,您可以通过以下方式轻松切换箭头图标:

$('div.arrow').toggleClass('expanded');

也可以通过以下方式选中“展开/折叠”:

var isExpanded = $('div.arrow').is('.expanded');
邢鸿博
2023-03-14

$(this).option-heading;任何选项-标题(这就是为什么所有箭头都被切换的原因)。您应该将一个类添加到活动选项标题中,使其唯一。

下面这样的方法可以起到作用:

$(document).ready(function() {
   $(".option-heading").click(function(){
     $(".option-heading").removeClass("active");
     $(this).addClass("active");
     $(".option-heading.active").find(".arrow-up, .arrow-down").toggle();
   });
});
 类似资料:
  • 问题内容: 我已经使用延迟加载实现了一棵树。1级节点是在创建树时创建的,而子节点只有在用户扩展任何特定节点时才创建。 数据来自数据库,我们向数据库发出查询,以填充子节点。实现TreeExpansionListener并使用treeExpanded方法的重写实现。扩展时,我删除所选节点的所有子节点,进行数据库查询,并将记录作为子节点添加到所选节点。在将任何节点添加到树之前,将虚拟子节点添加到该节点。

  • 问题内容: 我从这里开始使用CollapsibleTableView,并根据我的要求对其进行了修改,以实现可折叠部分。这是现在的样子。 由于根据UI设计,我的节有一个边框,因此我选择了节标题作为我的UI元素,以折叠和展开模式保存数据。 原因: 我尝试过,但无法在下面说明的此模型中正常工作- **在节标题中有我的标题元素,并在其单元格中包含每个项目的详细信息。默认情况下,该节处于折叠状态。当用户点击

  • 我创建了一个带有可扩展行的垫子表,就像Angular 8: https://stackblitz.com/angular/pmagobelkkg?file=app%2ftable-expandable-rows-example.ts 但是,与上面的示例一样,只有当我单击该行内的某个位置时,该行才会展开。有没有办法把上下箭头图标加到每一行,这样只有当我点击每一行的图标时,一行才会展开? 非常感谢!

  • 我有一个带有多个视图保持器的RecyclerView适配器。每个ViewHolder都有一个标题TextView和一个嵌套的RecyclerView,工作正常。但我想实现一个扩展/折叠函数,这样嵌套的RecyclerView就可以隐藏,直到单击标题为止。我使用此方法RecyclerView展开/折叠项目。它可以工作,但当我单击标题以展开嵌套的RecyleView时,recyclerview不会填充

  • 展开或折叠代码 操作步骤: 菜单栏:Code —> Folding —> Expand 快捷键: Mac: command + “+” Windows\/Linux: Ctrl + "+" 展开或折叠代码 操作步骤: 菜单栏:Code —> Folding —> Collapse 快捷键: Mac: command + “-” Windows\/Linux: Ctrl + "-" 展开或折叠当前代

  • 我正在尝试在我的android应用程序中实现折叠工具栏。我可以按我希望的方式显示工具栏,但滚动时它不会塌陷。 我正在使用以下代码 activity.xml main_toolbar.xml 下面是屏幕的外观