Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript OnClick操作没有';I don’我不能一次工作,但只能在第一次装载时工作。实例包括。_Javascript - Fatal编程技术网

Javascript OnClick操作没有';I don’我不能一次工作,但只能在第一次装载时工作。实例包括。

Javascript OnClick操作没有';I don’我不能一次工作,但只能在第一次装载时工作。实例包括。,javascript,Javascript,我已经为我的站点标题制作了一个隐藏/显示按钮,但我有这个“问题”。如果用户第一次加载我的站点,或者在刷新之后,这个按钮需要点击两次才能工作。但这只是第一次。那就正常了!知道为什么会这样吗 下面的评论就是一个活生生的例子。提前谢谢你 window.getComputedStyle(sheader_1).display 您需要获取元素的计算样式。否则,如果(sheader_1.style.display=='block')条件显示将不起作用,因为显示将为空 在Internet Explorer中,

我已经为我的站点标题制作了一个隐藏/显示按钮,但我有这个“问题”。如果用户第一次加载我的站点,或者在刷新之后,这个按钮需要点击两次才能工作。但这只是第一次。那就正常了!知道为什么会这样吗

下面的评论就是一个活生生的例子。提前谢谢你

window.getComputedStyle(sheader_1).display
您需要获取元素的计算样式。否则,如果(sheader_1.style.display=='block')条件显示将不起作用,因为显示将为空

在Internet Explorer中,计算样式的方法是:
element.currentStyle

我建议在这种情况下使用jQuery

您需要获取元素的计算样式。否则,如果(sheader_1.style.display=='block')条件显示将不起作用,因为显示将为空

在Internet Explorer中,计算样式的方法是:
element.currentStyle

我建议在这种情况下使用jQuery。

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';
     ;}
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';
     ;}

加载页面时,sheader_1的显示不是阻塞,而是一个空字符串

因此,您可以将您的条件更改为:

if (sheader_1.style.display != 'none')

加载页面时,sheader_1的显示不是阻塞,而是一个空字符串

因此,您可以将您的条件更改为:

if (sheader_1.style.display != 'none')


非常感谢Th0rndike!!!您的更正还可以,但Pranav也更正了语法!!!:)我觉得他得到正确答案是不公平的,因为他比我晚5分钟回答,他的答案和我的完全一样。我真的很抱歉我的朋友!!!你是对的。。。我再次测试你的例子,它是有效的!!!粘贴你的代码是我的错。我希望公平,所以你的问题会被接受,因为它是更快的,因为你说的,毕竟是正确的!!!再次抱歉…谢谢你的更正@普拉纳夫对不起我的朋友,但当我发现一些不公平的事情时,我就是不能闭嘴。@Th0rndike:-在我起草我的答案时,你先给出答案是可以的。我对你没有什么难受的感觉,我们是来学习和帮助的。所以无论他接受我的答案还是你的答案,我都是好朋友。非常感谢Th0rndike!!!您的更正还可以,但Pranav也更正了语法!!!:)我觉得他得到正确答案是不公平的,因为他比我晚5分钟回答,他的答案和我的完全一样。我真的很抱歉我的朋友!!!你是对的。。。我再次测试你的例子,它是有效的!!!粘贴你的代码是我的错。我希望公平,所以你的问题会被接受,因为它是更快的,因为你说的,毕竟是正确的!!!再次抱歉…谢谢你的更正@普拉纳夫对不起我的朋友,但当我发现有什么不公平的事情时,我就是不能闭嘴。@Th0rndike:-你在我起草答案时先给出答案是可以的。我对你没有什么难受的感觉,我们是来学习和帮助的。所以,无论他接受我的答案还是你的答案,我都是好朋友。。