【发布时间】:2018-10-07 09:15:57
【问题描述】:
我连续有多个复选框。单击按钮时,它会显示一个 div (#locale_container),并且会翻转一个小箭头(通过添加旋转的类)。
但是我不希望每次选中复选框时箭头都会翻转,只有当 div 可见或隐藏时。
即 如果复选框 1 被选中然后旋转(div 被隐藏然后可见),那么如果未选中则再次旋转(div 可见然后隐藏)。
如果选中复选框 2 和复选框 3,则旋转,但如果未选中复选框 3 且复选框 2 仍选中,则不旋转。
这是我迄今为止设法构建的,但似乎无法让它工作!
如何让它在每次选中该框时停止旋转 - 检查 div 何时可见或隐藏!
$(document).on('change', '#est', function (e)
{
e.preventDefault();
$( "#locale_container" ).slideDown( "Medium");
if (!$('#locale_container').is(':visible'))
{
console.log("hidden");
$("#locale_arrow").toggleClass('flip');
}
else
{
console.log("visible");
}
console.log("Check")
});
编辑:JSFIDDLE https://jsfiddle.net/10yf47an/2/
我的 HTML
<div class="inner" id="est">
<label>
<input type="checkbox"><span>Club</span></label>
</div>
<div class="inner" id="est">
<label>
<input type="checkbox"><span>Pub</span></label>
</div>
<img id="locale_arrow" src="https://image.flaticon.com/icons/svg/7/7645.svg" >
<div id="locale_container">
DEMO</div>
我的 CSS
#locale_container {display:none}
.flip {transform: rotate(-180deg);}
#locale_arrow {height: 40px}
【问题讨论】:
-
如何隐藏/显示 div?如果你使用不透明度,你可以检查它的值是0还是1,如果你设置“显示:无”你可以检查它是否被设置,等等。
-
我正在使用 display:none
-
乍一看你的代码应该可以工作,你能提供一个工作的codepen/fiddle吗?
-
我会做一个小提琴!给我几分钟 - 谢谢!
-
您似乎有一些语法错误,1: 一个
id必须 是唯一的页面是有效的 (X)HTML, 2: 你有一个结束</div>没有一个开始<div>标记,3: 你有一个不必要的分号在你的 @987654330 的结束}后面@。另外:请在您的问题中发布您的“minimal reproducible example”代码,JS Fiddle 演示是一个奖励,但它不能替代问题本身中存在的代码。
标签: javascript jquery html