我有一个标签按钮。带有向上箭头和文本底部。单击选项卡时。该网站的标题被隐藏,箭头图标上下颠倒。
我也希望箭头改变它在html中的定位。
我可以使用以下脚本完成此操作:
<script>
$('.contentTab').on('click', function(e) {
$('.mainContent').toggleClass("closeHeader");
$('.triangle-up').toggleClass("triangle-down");
$(".triangle-down").insertAfter(".contentTab h1")
e.preventDefault();
});
</script>
//
我的问题是:如何切换此功能。因此,如果再次单击 contentTab 。 箭头恢复到原来的位置。我是否创建了if语句?我是 JS
的新手谢谢!
答案 0 :(得分:1)
由于您在元素上切换了一个类,如果它没有.triangle-up
类,您只需使用:not()
pseudo class选择.triangle-down
:< / p>
$(".triangle-down").insertAfter(".contentTab h1");
$(".triangle-up:not(.triangle-down)").insertBefore(".contentTab h1");
完整的代码段:
$('.contentTab').on('click', function(e) {
$('.mainContent').toggleClass("closeHeader");
$('.triangle-up').toggleClass("triangle-down");
$(".triangle-down").insertAfter(".contentTab h1");
$(".triangle-up:not(.triangle-down)").insertBefore(".contentTab h1");
e.preventDefault();
});
&#13;
h1 {
display: inline-block;
}
.triangle-down {
color: #f00;
display: inline-block;
transform: rotate(180deg);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="contentTab">
<span class="triangle-up">▲</span>
<h1>Content tab header</h1>
</div>
&#13;
答案 1 :(得分:0)
$('.contentTab').on('click', function(e) {
$('.mainContent').toggleClass("closeHeader");
$('.triangle-up').toggleClass("triangle-down");
if(!$('.triangle-up').hasClass("triangle-down")){
$(".triangle-down").insertAfter(".contentTab h1");
}else{
// put it back wherever it was before
$(".triangle-down").insertAfter(...where ever it was before..);
}
e.preventDefault();
});
答案 2 :(得分:0)
<script>
$('.contentTab').on('click', function(e) {
$('.mainContent').toggleClass("closeHeader");
if ($('.mainContent').hasClass("closeHeader")){
$('.triangle-up').hide();
$(".triangle-down").show();
}else {
$('.triangle-up').show();
$(".triangle-down").hide();
}
e.preventDefault();
});
</script>
前提是.triangle-up
和.triangle-down
是两个元素。