jQuery翻转箭头图标基于折叠位置
jQuery to flip arrow icon based on collapse position
我正在寻找一些jQuery,将翻转我的箭头图标从下到上基于折叠状态的位置。
<div class="panel panel-default">
<div class="panel-heading customize">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#personnel-menu" href="#personnel">
Personnel
<span class="pull-right"><i class="fa fa-angle-down"></i></span>
</a>
</h4>
</div>
<div id="personnel" class="panel-collapse collapse">
<div class="panel-body">
<ul class="list-unstyled stripped">
<li><a href="#">Users</a></li>
</ul>
</div>
</div>
</div>
当处于"open"位置时,这一行<div id="personnel" class="panel-collapse collapse">
将变为<div id="personnel" class="panel-collapse collapse in">
。增加了"在"。
在此位置,使用"in"<div id="personnel" class="panel-collapse collapse in">
,我想采用<span class="pull-right"><i class="fa fa-angle-down"></i></span>
行(比前者高几行),并将类fa-angle-down更改为fa-angle-up。
我怎样才能做到这一点?
谢谢。
从你的例子中,我假设你使用Bootstrap's Collapse
插件与Font Awesome
。
如果是这样的话,也许您可以尝试连接到Collapse
的shown.bs.collapse
和hidden.bs.collapse
事件,并在那里进行操作(翻转箭头图标)。
$('#personnel-menu').on('hidden.bs.collapse', function (event) {
var arrow = $('#' + event.target.id).parent().find('i');
arrow.removeClass('fa-angle-down');
arrow.addClass('fa-angle-up');
}).on('shown.bs.collapse', function (event) {
var arrow = $('#' + event.target.id).parent().find('i');
arrow.removeClass('fa-angle-up');
arrow.addClass('fa-angle-down');
});
实时演示:http://jsfiddle.net/pUam7/show/(源代码)
完成此操作的代码相当简单:
var elem = $("#personnel");
if (elem.hasClass("in")) {
elem.parents(".panel").first().find(".fa-angle-down")
.removeClass("fa-angle-down")
.addClass("fa-angle-up");
}
else {
elem.parents(".panel").first().find(".fa-angle-up")
.removeClass("fa-angle-up")
.addClass("fa-angle-down");
}
当您想要将"in"类添加到$("#personel")
对象时,您将触发此代码。
然而,如果你无论如何都要添加类,在我看来,更好的方法是将类添加到$(".panel")
div中,然后CSS将为你处理这些更改,例如:
.panel .panel-heading .panel-title a i.fa {
background-color: red;
}
.panel.in .panel-heading .panel-title a i.fa {
background-color: blue;
}
即使你想使用javascript,那么,在我看来,最好添加代码来改变类(从fa-angle-down
到fa-angle-up
,反之亦然)在任何事件/在任何函数调用中,你正在使用添加"in"类到$("#personnel")
对象。
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- ExtJS——在展开/折叠时调整面板高度
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- Twitter 引导中的图标箭头位置 - 折叠插件
- 绘制在鼠标位置折叠的水平线和垂直线
- 如何使输入组在完成写入后或单击任意位置时折叠
- 有没有一种技术来确定任何给定视口的页面折叠位置
- jqm更改可折叠的位置
- jQuery滚动到可折叠的结束位置
- 如何折叠两个数组,通过凹入和解开它们,但大多保持位置
- $(文档).(“click" . .如何在单击文档的其他位置时折叠列表
- 可折叠菜单更改元素的位置
- 我如何开始d3.js树在一个折叠的位置
- MediaWiki我如何得到[折叠]链接不移动位置与文本
- jQuery翻转箭头图标基于折叠位置