当元素在Javascript中可见时,它会切换回隐藏状态
When element got visible in Javascript it toggle back to hidden
请帮助,因为当我点击并调用Javascript函数来取消隐藏元素时,它会再次隐藏。只需一秒钟或更短的时间。
HTML<asp:Button ID="btnFromCalOpen" Width = "35" runat="server" Text=">" style="display:none; visibility:hidden;" OnClientClick ="ShowCal()" />
Javascript function ShowCal() {
var elem = document.getElementById('MainContent_CalendarFrom');
if (elem.visibility = "hidden" ) {
alert("Show");
elem.style.visibility = "visible";
elem.style.display = "inline";
}
else {
alert("Hide");
elem.style.visibility = "hidden";
elem.style.display = "none";
}
}
当我点击按钮时它会刷新所有元素的样式属性
请帮
你的代码中有一个错误/bug
if (elem.visibility = "hidden" ) {
你没有检查if,但你把它设置为隐藏!
要避免这种错误,请尝试以下方法
if ("hidden" == elem.visibility ) {
代码中的两个主要问题。
-
elem.visibility
不是对象的属性。如果您想查看样式设置,它将是elem.style.visibility
。 - 与
==
或===
比较,不与=
比较。你正在对=
进行赋值操作。
试试这个代码:
function ShowCal() {
var elem = document.getElementById('MainContent_CalendarFrom');
if (elem.style.visibility == "hidden" ) {
alert("Show");
elem.style.visibility = "visible";
elem.style.display = "inline";
}
else {
alert("Hide");
elem.style.visibility = "hidden";
elem.style.display = "none";
}
}
仅供参考,不需要同时设置style.visibility
和style.display
。如果你要设定风格。显示为"none",则不需要可见度设置。
你的代码的一个更简单的版本应该是这样的(你可以看到在这个jsFiddle中工作):
function ShowCal() {
var elem = document.getElementById('MainContent_CalendarFrom');
if (elem.style.display == "none" ) {
elem.style.display = "inline";
} else {
elem.style.display = "none";
}
}
并且,从这个标签的HTML中删除visibility: hidden
。display: none
是你所需要的。
作为参考(如果可能的话),这里是jQuery或YUI等库非常方便的地方之一。在jQuery中,这将是:
function ShowCal() {
$("#MainContent_CalendarFrom").toggle();
}
相关文章:
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- 检查元素是否将状态从隐藏更改为可见
- jQuery隐藏元素在使用CSS显示时保持隐藏状态
- 在表重新加载后,使用setInterval保持表的显示-隐藏状态
- 保持状态打开”;在背景中”;.隐藏,但不要't在Angular UI中离开状态
- 如何使用jQuery检查切换的隐藏状态
- 将表的隐藏状态更改为可见状态>点击TR
- 谷歌地图叠加层消息不会保持隐藏状态
- 浏览器状态栏:隐藏对特定网站的请求地址
- 当鼠标悬停在链接上时,从 href URL 中隐藏状态栏值
- 在iCheck的复选框选中和未选中状态下显示和隐藏另一个复选框
- 使用Phonegap Build隐藏Android中的状态栏
- 如何将 phonegap 2.9.0 更新到 3.0 或在 phonegap 应用程序中隐藏状态栏
- 显示/隐藏 ReactJS 组件而不会丢失其内部状态
- 在状态栏中隐藏网址
- 高图表工具提示溢出处于隐藏状态
- 在鼠标(指针设备)未处于活动状态(不移动)时隐藏按钮
- 当其他元素处于活动状态时,jQuery 不显示隐藏元素
- 如何根据不同页面上的复选框状态隐藏或显示DIV
- 在angular js中基于状态隐藏按钮