我为我的网站标题制作了一个隐藏/显示按钮,但我有这个“问题”。如果用户第一次加载我的网站,或者刷新后,这个按钮需要点击两次才能工作。但只是第一次。然后就可以正常使用了!知道为什么会这样吗?
下面评论中的实时示例。先感谢您!!!
我为我的网站标题制作了一个隐藏/显示按钮,但我有这个“问题”。如果用户第一次加载我的网站,或者刷新后,这个按钮需要点击两次才能工作。但只是第一次。然后就可以正常使用了!知道为什么会这样吗?
下面评论中的实时示例。先感谢您!!!
js代码是:
function display_news(){
var sheader_1 = document.getElementById("sheader_a");
var sheader_2 = document.getElementById("sheader_b");
if (sheader_1.style.display == 'block')
sheader_1.style.display = 'none',
sheader_2.style.display = 'block';
else sheader_1.style.display = 'block',
sheader_2.style.display = 'none';
;}
如果您在第一次加载页面时提醒 sheader_1 的值,结果是一个空字符串,因此您的代码不会做任何事情(它将跳转到 else 语句)。
使其工作的一种方法是:
function display_news(){
var sheader_1 = document.getElementById("sheader_a");
var sheader_2 = document.getElementById("sheader_b");
//here we also check if display property is empty
if (sheader_1.style.display == 'block' || sheader_1.style.display == '')
sheader_1.style.display = 'none',
sheader_2.style.display = 'block';
else sheader_1.style.display = 'block',
sheader_2.style.display = 'none';
;}
function display_header(){
var sheader_1 = document.getElementById("sheader_a");
var sheader_2 = document.getElementById("sheader_b");
if (sheader_1.style.display == 'block' || sheader_1.style.display=='')
{
sheader_1.style.display = 'none';
sheader_2.style.display = 'block';
}
else {
sheader_1.style.display = 'block';
sheader_2.style.display = 'none';
}
}
window.getComputedStyle(sheader_1).display
您需要获取元素的计算样式。否则此条件if (sheader_1.style.display == 'block')
将不起作用,因为显示将为空。
在 Internet Explorer 中,计算样式的方法是:element.currentStyle
.
我建议在这种情况下使用 jQuery。
当页面加载时,sheader_1 的显示不是块,而是一个空字符串。
因此,您可以将您的条件更改为:
if (sheader_1.style.display != 'none')