【发布时间】:2018-02-02 03:12:15
【问题描述】:
我有一个最初具有 display:none 的元素。当我单击一个按钮时,会触发一个 jQuery 事件,当单击该按钮时,我的脚本会在块和无之间切换元素的显示属性。
我正在尝试使元素父级的背景根据元素是否隐藏而改变颜色。
$("#button").on('click', function(){
if($(".hidden-content").is(":hidden")) {
$(".other-element").css("background-color","rgba(20,20,20,.9)");
} else {
$(".other-element").css("background-color","rgba(20,20,20,0)");
}
})
由于某种原因,当我单击按钮切换下拉菜单时,jQuery 将 .hidden-content 视为未隐藏,即使当我检查元素时,它也会显示 .other-element { 显示:无 };
有人知道为什么会这样吗?由于隐藏是使用 jQuery 切换的,它实际上可能不会改变 .hidden-content 自己的 css,但我不明白为什么在第一次点击时这应该是一个问题。
【问题讨论】:
-
.other-element可能有{ display: none };,但是你实际测试的.hidden-content呢?编辑:其实没关系,你说.other-element是父母,所以理论上.hidden-content也应该被认为是隐藏的。 -
我建议你切换类而不是像你正在做的那样做。您可以创建一个名为 hidden 的类,其显示属性设置为隐藏,以及其他一些其显示属性设置为块、内联或其他的类,并在单击按钮时切换类,然后测试元素是否具有“隐藏”类或其他类,并相应地设置它的背景。希望这会有所帮助。
标签: javascript jquery html css