为什么我的按钮在添加 class 后不会改变状态?
Why won't my button change state after adding a class?
我有一个按钮,它是我使用 <input>
标签创建的,还有一些 jQuery/CSS 来设置它的样式并使它起作用。
我的问题是我无法让我的按钮在单击时旋转,尽管我已经在其中添加了 flip
功能。可能是什么问题?我做错了吗,还是遗漏了什么?我可以尝试更简单的选择吗?我只是希望它在从输入值中显示的当前状态单击它时向下翻转。
$(document).ready(function() {
$('.myInnerBtn').click(function() {
$(".blogs").slideToggle("slow", function() {
$(".myInnerBtn").toggleClass('flip');
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="innerbuttonwrapper1">
<input type="button" value="►" class="myInnerBtn" style="background:none; font-family:Overpass, Arial, Verdana; font-size:18px; border:none; cursor:pointer; color:#741dff;" />
<a class="blogs" href="iwriteonwheels.com/post/190161104157/tbt-ace-of-base" style="display:none;"> TBT: Ace of Base</a>
<br>
<p>
<a class="blogs" href="iwriteonwheels.com/post/190002799642/2020" style="display:none;"> 2020</a>
<br><br><br>
</div>
为简单起见,只需添加大小写而不是切换,因为您不知道有多少元素可能会切换您的 class。
$(document).ready(function() {
$('.myInnerBtn').click(function() {
$(".blogs").slideToggle("slow", function() {
if ($(".blogs").is(':visible'))
$(".myInnerBtn").addClass('flip');
else
$(".myInnerBtn").removeClass('flip');
});
});
});
.flip { transform: rotate(90deg);}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="innerbuttonwrapper1">
<input type="button" value="►" class="myInnerBtn" style="background:none; font-family:Overpass, Arial, Verdana; font-size:18px; border:none; cursor:pointer; color:#741dff;" />
<a class="blogs" href="iwriteonwheels.com/post/190161104157/tbt-ace-of-base" style="display:none;"> TBT: Ace of Base</a>
<br>
<p>
<a class="blogs" href="iwriteonwheels.com/post/190002799642/2020" style="display:none;"> 2020</a>
<br><br><br>
</div>
编辑:澄清一下,这个 anser 仍然留下了 slideToggle 的弱点,它只会切换,如果出于某种偶然情况,你的 .blogs 之一正在显示而另一个没有显示,那将导致问题。
我有一个按钮,它是我使用 <input>
标签创建的,还有一些 jQuery/CSS 来设置它的样式并使它起作用。
我的问题是我无法让我的按钮在单击时旋转,尽管我已经在其中添加了 flip
功能。可能是什么问题?我做错了吗,还是遗漏了什么?我可以尝试更简单的选择吗?我只是希望它在从输入值中显示的当前状态单击它时向下翻转。
$(document).ready(function() {
$('.myInnerBtn').click(function() {
$(".blogs").slideToggle("slow", function() {
$(".myInnerBtn").toggleClass('flip');
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="innerbuttonwrapper1">
<input type="button" value="►" class="myInnerBtn" style="background:none; font-family:Overpass, Arial, Verdana; font-size:18px; border:none; cursor:pointer; color:#741dff;" />
<a class="blogs" href="iwriteonwheels.com/post/190161104157/tbt-ace-of-base" style="display:none;"> TBT: Ace of Base</a>
<br>
<p>
<a class="blogs" href="iwriteonwheels.com/post/190002799642/2020" style="display:none;"> 2020</a>
<br><br><br>
</div>
为简单起见,只需添加大小写而不是切换,因为您不知道有多少元素可能会切换您的 class。
$(document).ready(function() {
$('.myInnerBtn').click(function() {
$(".blogs").slideToggle("slow", function() {
if ($(".blogs").is(':visible'))
$(".myInnerBtn").addClass('flip');
else
$(".myInnerBtn").removeClass('flip');
});
});
});
.flip { transform: rotate(90deg);}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="innerbuttonwrapper1">
<input type="button" value="►" class="myInnerBtn" style="background:none; font-family:Overpass, Arial, Verdana; font-size:18px; border:none; cursor:pointer; color:#741dff;" />
<a class="blogs" href="iwriteonwheels.com/post/190161104157/tbt-ace-of-base" style="display:none;"> TBT: Ace of Base</a>
<br>
<p>
<a class="blogs" href="iwriteonwheels.com/post/190002799642/2020" style="display:none;"> 2020</a>
<br><br><br>
</div>
编辑:澄清一下,这个 anser 仍然留下了 slideToggle 的弱点,它只会切换,如果出于某种偶然情况,你的 .blogs 之一正在显示而另一个没有显示,那将导致问题。