JQuery/JS的onclick改变元素的类内链接点击
JQuery/JS onclick change class of element inside link clicked
我有一对使用bootstrap的下拉菜单,我想在一个简单的函数中编写代码,以更改链接内span元素的类。
澄清……这里有一个HTML
的例子:
<a data-toggle="collapse" href="#collapse-panel" aria-expanded="false"
onclick="toggleIcon()">
<span class="glyphicon glyphicon-knight"></span>
Drop Down Title
<span class="glyphicon glyphicon-triangle-bottom"></span>
</a>
<div class="collapse" id="collapse-panel">
<!-- content -->
</div>
我正在寻找一个函数(使用JS
或JQuery
),它可以切换第二个span类在glyphicon glyphicon-triangle-bottom
和glyphicon glyphicon-triangle-top
之间变化。
请记住,此函数必须适用于多个下拉列表。
$('a[data-toggle="collapse"]').click(function() {
$(this)
.find('.glyphicon-triangle-bottom, .glyphicon-triangle-top')
.toggleClass('glyphicon-triangle-top glyphicon-triangle-bottom');
});
同时删除onclick="toggleIcon()"
这应该适用于所有具有data-toggle="collapse"
属性的锚标记。
相当简单—最好使用$.click()函数并使您的类正确:
<a data-toggle="collapse" class="toggle-icon" href="#collapse-panel" aria-expanded="false">
<span class="glyphicon glyphicon-knight"></span>
Drop Down Title
<span class="icon-toggle glyphicon glyphicon-triangle-bottom"></span>
</a>
<div class="collapse" id="collapse-panel">
<!-- content -->
</div>
我在这里所做的是将toggle-icon类添加到顶部链接中,并将icon-toggle类添加到字形图标的span中…JS如下:
// On Toggle-Icon Click
$('.toggle-icon').click(function(){
// Set Icon To toggle in function
var IconToToggle = $(this).find('.icon-toggle');
// If the icon is the bottom icon
if (IconToToggle.hasClass('glyphicon-triangle-bottom')) {
// Change the icon to the top icon
IconToToggle.removeClass('glyphicon-triangle-bottom').addClass('glyphicon-triangle-top');
// Otherwise
} else {
// Change the top icon to the bottom icon
IconToToggle.removeClass('glyphicon-triangle-top').addClass('glyphicon-triangle-bottom');
}
})
添加注释,以便更好地阅读代码。希望这对你有帮助!
https://jsfiddle.net/khxehd05/$(function(){
$('#checkcls').click(function(){
if($('#tglcls').hasClass('glyphicon-triangle-bottom')){
$('#tglcls').removeClass('glyphicon-triangle-bottom').addClass('glyphicon-triangle-top');
//to check class
alert($("#tglcls").attr('class'));
}
else{
$('#tglcls').addClass('glyphicon-triangle-bottom').removeClass('glyphicon-triangle-top');
//to check class
alert($("#tglcls").attr('class'));
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a data-toggle="collapse" href="#collapse-panel" aria-expanded="false" id='checkcls'>
<span class="glyphicon glyphicon-knight"></span>
Drop Down Title
<span class="glyphicon glyphicon-triangle-bottom" id='tglcls'></span>
</a>
<div class="collapse" id="collapse-panel">
<!-- content -->
</div>
希望对你有帮助。
到目前为止,我认为答案还可以(以我个人的拙见)。花点时间读一读:
解耦你的HTML, CSS和JavaScript
我将改变一些东西,使它看起来真正可读和可维护:
Html:<a data-toggle="collapse" href="#collapse-panel" aria-expanded="false">
<span class="glyphicon glyphicon-knight"></span>
Drop Down Title
<span class="glyphicon glyphicon-triangle-bottom hide-on-expanded"></span>
<span class="glyphicon glyphicon-triangle-top hide-on-collapsed"></span>
</a>
<div class="collapse" id="collapse-panel">
<!-- content -->
</div>
css: [data-toggle="collapse"][aria-expanded="false"] .hide-on-collapsed{
display: none;
}
[data-toggle="collapse"][aria-expanded="true"] .hide-on-expanded{
display: none;
}
JsFiddle工作示例
- 我强烈建议你尽量避免使用内联函数。(
onclick="toggleIcon()"
) - 利用CSS和什么Bootstrap已经通过简单地编写html和CSS !
- 完全可重用,不关心你使用什么字形,不需要javascript,没有硬编码的事件或类。
相关文章:
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 鼠标光标改变Javascript链接的DIV
- 全球不断改变价值.可能通过引用或范围问题传递?帮助!链接中的详细示例
- 有条件地改变Angular中按钮中的链接
- 是否有一种方法来改变所有的网页链接url根据浏览器的url
- 如何通过使用javascript点击链接来改变模态消息
- 是否有可能改变现有图形的节点/链接的属性?比如我想改变链接/节点的颜色
- 如何改变URL(哈希),当用户滚动或点击链接与jquery历史插件
- JS根据屏幕大小改变链接
- 如何改变悬停时另一个链接的颜色
- 如何使链接在点击时改变段落的内容?返回false,不工作
- 我如何使用图像链接提交表单,以改变与JS(没有JQuery)的表单动作
- 如何从页面底部的<链接滚动到#header DIV以及如何改变动画速度- JQuery 1.8.3
- 当根据下拉选择改变图像时,为图像添加超链接
- 如何改变“三个”;链接属性具有特定的"href"使用jQuery
- 我如何使跨度改变颜色时,链接被点击
- Greasemonkey - regex在javascript中改变链接
- 用js改变页面上的所有链接
- 如何动态地改变链接的顺序
- 改变原来的页面,打开一个新的页面与一个链接- iOS 8.3