当我隐藏我的Div元素时,我不明白为什么这会通过我的if条件。如果div id等于可见,我试图找出一种写入方式然后警告用户"内容可见"。如果我的div id等于隐藏,则提醒用户"内容隐藏"
//document.getElementById("myDiv").style.visibility = "visible";
document.getElementById("myDiv").style.visibility = "visible";
var status = document.getElementById("myDiv").style.visibility;
if($("#myDiv").is(":visible") == true){
alert("visible JQuery");
}
if (document.getElementById("myDiv").style.visibility === "hidden")
{
alert("visible JS");
}
alert(status);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div id="myDiv">Hello</div>
&#13;
答案 0 :(得分:1)
具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍占用布局中的空间。
:visible
选择器仅适用于属性display
。
你能做的是:
if ($("#myDiv").css("visibility") == "hidden") {
// do something when hidden ...
}
答案 1 :(得分:1)
这似乎对我有用:
document.getElementById("myDiv").style.visibility = "visible";
document.getElementById("myDiv").style.visibility = "hidden";
if($("#myDiv").css("visibility") !== "hidden") {
alert("visible JQuery");
}
if (document.getElementById("myDiv").style.visibility === "hidden") {
alert("hidden JS");
}
<强> Codepen:强>
https://codepen.io/foozie3moons/pen/OxgomO
修改强> 更新了我的回复,就好像您没有将可见性设置为可见。
答案 2 :(得分:0)
visibility ='hidden'仍占用浏览器空间,因此jQuery报告为“:visible”。如果你做了style.display ='none',你的jQuery可见检查就不会触发。