请您查看this demo,让我知道为什么change()
函数无法在{1}}中slideDown()
hidden
元素?
这是我的代码
$(function() {
$('input:radio').change(function() {
if($(this).val()== 'Dog') {
$('#hidden-list-1').slideDown();
}
if($(this).val()== 'Bird'){
$('#hidden-list-2').slideDown();
}
});
});
答案 0 :(得分:10)
正如其他答案已经提到的那样,问题是boostrap有这样的风格
.hidden{
display: none !important;
}
解决此问题的一种方法是删除隐藏的类。
$('#hidden-list-1').hide().removeClass('hidden').slideDown();
答案 1 :(得分:1)
这似乎是CSS中重要标签的问题。从Bootstrap文档(http://getbootstrap.com/css/)中,show和hidden类标记为重要:
.show {
display: block !important;
}
.hidden {
display: none !important;
}
jQuery slideDown()应用的css更改很可能会被忽略。如果您将其取出并替换为style="display:none;"
而没有重要内容,则slideDown()将起作用。我把它添加到小提琴:https://jsfiddle.net/zzdL5jp7/1/
答案 2 :(得分:0)
这是因为隐藏类强制始终隐藏元素。我很确定它的确如下:
button {
transform: translateY(5px);
}
因此,在向下滑动元素后,您必须修改代码以删除该类。或使用您自己的CSS来隐藏元素(因此您没有display: none !important;
。
如果您修改JSFiddle以获得CSS:
!important
然后移除#hidden-list-1 {
display: none;
}
类,您会看到它按预期工作。
答案 3 :(得分:0)
您添加到hidden
和#hidden-list-1
的{{1}}课程将覆盖您的JS完成的显示属性更改。删除#hidden-list-2
类并声明隐藏在CSS中的两个元素将解决您的问题。
答案 4 :(得分:0)
更新您的css代码
.show {
display: block !important;
}
.hidden {
display: none !important;
}