Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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需要点击2次_Javascript_Html_Css - Fatal编程技术网

Javascript onclick需要点击2次

Javascript onclick需要点击2次,javascript,html,css,Javascript,Html,Css,每个div仅在开始时单击2次后才显示。在每个div上单击2次后,每个div showhide只需单击1次即可工作。Javascript和html 函数showhide(){ var div=document.getElementsByClassName('search_form')[0]; 如果(div.style.display==“无”){ div.style.display=“块”; }否则{ div.style.display=“无”; } } 函数showhide2(){ var d

每个div仅在开始时单击2次后才显示。在每个div上单击2次后,每个div showhide只需单击1次即可工作。Javascript和html

函数showhide(){
var div=document.getElementsByClassName('search_form')[0];
如果(div.style.display==“无”){
div.style.display=“块”;
}否则{
div.style.display=“无”;
}
}
函数showhide2(){
var div=document.getElementsByClassName('login')[0];
如果(div.style.display==“无”){
div.style.display=“块”;
}否则{
div.style.display=“无”;
}
}
函数showhide3(){
var div=document.getElementsByClassName('carrello')[0];
如果(div.style.display==“无”){
div.style.display=“块”;
}否则{
div.style.display=“无”;
}
}
。搜索表单{
显示:无;
浮动:对;
}
.登录{
显示:无;
浮动:对;
}
卡雷洛先生{
显示:无;
浮动:对;
}

 

问题出在JavaScript代码中。由于display属性最初是在css中设置的,
div.style.display
不会为您提供
none
。因此,您必须稍微更改代码。像这样:

if(div.style.display != "block")
   div.style.display = "block";
else
   div.style.display = "none";

使用JavaScript代码设置显示属性后,可以使用JavaScript读取该属性。

不确定是要双击还是只需两次单独的单击。但是,如果双击可以满足您的功能需求,您可以尝试以下操作:

<img src="img.png" ondblclick="showhide2()" onmouseover="this.src='img.png'" mouseout="this.src='img.png'" width="50px" height="50px">

因为display属性没有实际设置(尽管它是通过CSS应用的),所以它的初始值是空的(因此不等于
'none'
)。 如果按相反的顺序选中,它会工作,但更安全的做法可能是使用您切换的额外类(带有display属性)。 一个最小化的示例:

函数显示隐藏(cn){
var div=document.getElementsByClassName(cn)[0];
div.classList.toggle('show');
}
.login carrello>img{
宽度:50px;
高度:50px;
}
.search_form、.login、.carrello{
浮动:对;
显示:无;
}
.表演{
显示:块;
}

搜索表格
登录

carrello
@WesFoster为什么每个图像都需要class属性?每次单击任何图像时,您提供的代码片段都会抛出一个错误。请用说明问题的答案更新您的问题。