Что было бы лучшим способом для переключения треугольника на ▲ в выпадающем меню (без использования изображений)?
<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();
});
вы можете использовать CSS.. поэтому, когда вы нажимаете на тег, вы добавляете класс в тег. Скажем, класс, который называется clicked, а затем имеет правило 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 Matrix Rotation Calculator:
http://www.boogdesign.com/examples/transforms/matrix-calculator.html
:)
Вы можете использовать toggleClass
и определить треугольник в CSS3 с псевдо-тегом :before
CSS
.box-heading > a:before{
content: "▲";
}
.box-heading > a.active:before{
content: "►";
}
JQuery
$(".box-heading > a").click(function(){
$(this).toggleClass("active")
});
Использовать выражение Ternary
$(".filter_group[filtertype!='p']").is(":visible") ? $(this).next("span").text("▲") : $(this).next("span").text("►")
Использование jQuery для замены html вашего диапазона
Что-то вроде:
$('span').text('▲');