css - Bootstrap 下拉菜单 : change dropdown icon when it's active?

标签 css twitter-bootstrap

我有以下设置:

<div data-ng-repeat="item in navigationBar.navObject.items" class="btn-group">
  <button data-ng-class="{current: $last}" class="btn btn-default btn-xs" type="button" data-ng-click="navigationBar.goToState(item)"> {{item.name}}</button>
  <button data-ng-hide="item.isTerminal" data-toggle="dropdown" class="btn btn-default btn-xs dropdown-toggle" type="button">
     <span class="fa fa-fw fa-caret-right"></span>                        
  </button>
  <ul class="dropdown-menu">
    <li data-ng-repeat="subItem in item.subItems"><a data-ng-click="subItem.item.goToState()">{{subItem.name}}</a></li>               
  </ul>
</div>

当下拉列表可见时,我希望下拉列表中的图标从 fa-caret-right 更改为 fa-caret-down。有没有办法严格使用 CSS 来做到这一点?

最佳答案

您将无法使用 CSS 更改 HTML 元素的属性,您可能希望改用 jQuery。

Bootstrap 有一些漂亮的 JavaScript,当您使用网站内的 boostrap 元素时,您可以在其中执行自己的脚本。

在 jQuery 中使用这个初始化下拉列表。

$('.dropdown-toggle').dropdown();

当它被调用时,您可以使用 Bootstrap 文档中指定的句柄将不同的操作挂接到它。 on('show.bs.dropdown', function(){});只是说“在下拉菜单上”的花哨词

$('.dropdown-toggle').on('show.bs.dropdown', function () { //显示下拉列表后要触发的所有操作都放在这里。 $('.fa .fa-fw').addClass('fa-caret-right'); $('.fa .fa-fw').removeClass('fa-caret-down'); })

关于css - Bootstrap 下拉菜单 : change dropdown icon when it's active?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22781096/

相关文章:

html - 如何获得不超过页面宽度 100% 的 bootstrap 4 flex 表?

javascript - 打开lightBox后如何增加图像宽度?

css - 我可以使用 Google 网络字体自定义字体吗?

javascript - Bootstrap 未按预期工作

javascript - 需要具有不同宽度的响应式等高 div 标签

javascript - Angular.js 发送到许多帖子

javascript - 将多个值传递给 Bootstrap 模态表单

javascript - 如何更改轮播下带有文本的部分

javascript - 遍历列 JavaScript

css - 取消设置宽度以恢复为内联 html 属性 "width=XX"