在下拉列表中切换►三角形到▲的最佳方法是什么?(不使用图像)?
<div class="box-heading">
<a href="javascript:void(0);" id="switch-filters">
<span>►</span> Možnosti filtrovania</a>
</div>
$( "#switch-filters" ).click(function() {
$(".filter_group[filtertype!='p']").toggle();
});
答案 0 :(得分:3)
您可以使用toggleClass
并使用伪标记:before
<强> CSS 强>
.box-heading > a:before{
content: "▲";
}
.box-heading > a.active:before{
content: "►";
}
<强>的jQuery 强>
$(".box-heading > a").click(function(){
$(this).toggleClass("active")
});
答案 1 :(得分:3)
你可以使用CSS ..所以当你点击一个标签时,你会在一个标签上添加一个类......比如一个名为点击的类,然后有一个与该类关联的CSS规则
a.clicked span {
transform: scale(1) rotate(90deg) translate3d(0,0,0);
/* transform for IE8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.00000000, M12=-1.00000000, M21=1.00000000, M22=0.00000000,sizingMethod='auto expand')";
zoom:1;
}
然后CSS将跨度旋转90度,使左箭头变为向下箭头
浏览器兼容性
http://caniuse.com/#search=transforms
还链接到 CSS矩阵循环计算器:
http://www.boogdesign.com/examples/transforms/matrix-calculator.html
:)
答案 2 :(得分:1)
使用三元表达式
$(".filter_group[filtertype!='p']").is(":visible") ? $(this).next("span").text("▲") : $(this).next("span").text("►")
答案 3 :(得分:0)
使用jQuery替换跨度的html
类似的东西:
$('span').text('▲');