jquery - addClass 函数没有按预期工作
问题描述
jQuery 的其他效果toggle
,hide
正在工作,但addClass
功能在这里不起作用。displyanone
类在外部工作,但在 jQuery 函数内部不起作用。这里有什么问题?
$(document).on('click', '#menu', function() {
if($(this).is(':checked'))
$(this).parent().find('ul').slideDown('slow');
else
$(this).parent().find('ul').addClass('displaynone'); //Doesn't work
//$(this).parent().find('ul').hide('slow'); - works.
});
.displaynone {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="left col20">
<input type="checkbox" id="menu" name="menu[]" value="">
Checkbox
<ul class='displaynone'>
<input type="checkbox" class="menusub" name="menusub" value="">
Checkbox L2
</ul>
</label>
解决方案
.slideDown()
添加一个内联样式属性,该属性从类display:block
中覆盖。在添加内联样式属性后添加类,没有效果。display:none
displaynone
最简单的解决方法是替换class='displaynone'
并style='display:none'
使用.hide()
隐藏元素。在这种情况下,仅使用内联样式属性。
$(document).on('click', '#menu', function() {
if($(this).is(':checked'))
$(this).parent().find('ul').slideDown('slow');
else
$(this).parent().find('ul').hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="left col20">
<input type="checkbox" id="menu" name="menu[]" value="">
Checkbox
<ul style='display:none'>
<li>
<label>
<input type="checkbox" class="menusub" name="menusub" value="">
Checkbox L2
</label>
</li>
</ul>
</label>
推荐阅读
- android-studio - 如何将地图标记添加到单独的类文件中?
- chrome-debugging - 无法在 Chrome 开发者工具中查看问题标签
- javascript - nodemailer在浏览器中显示错误但在编辑器中没有
- c - 如何逐行检查文本文件中的单词以及找到时打印整行
- python - 如何将 SHAP 与 SpaCy 模型一起使用?
- reactjs - 在反应中使用onclick传递函数和参数
- swift - Swift/CoreML - 多目标检测模型
- python - 去除突出线
- python - 如何在 python 中使用方法作为装饰器?
- random - 将 IEEE 32 位浮点数 [1:2) 的范围映射到任意 [a:b)