Javascript onclick 需要 2 次点击

标签 javascript html css

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

function showhide() {
  var div = document.getElementsByClassName('search_form')[0];
  if (div.style.display == "none") {
    div.style.display = "block";
  } else {
    div.style.display = "none";
  }
}

function showhide2() {
  var div = document.getElementsByClassName('login')[0];
  if (div.style.display == "none") {
    div.style.display = "block";
  } else {
    div.style.display = "none";
  }
}

function showhide3() {
  var div = document.getElementsByClassName('carrello')[0];
  if (div.style.display == "none") {
    div.style.display = "block";
  } else {
    div.style.display = "none";
  }
}
.search_form {
  display: none;
  float: right;
}

.login {
  display: none;
  float: right;
}

.carrello {
  display: none;
  float: right;
}
<div class="login-carrello">
  <img src="img.png" onClick="showhide();" onmouseover="this.src='img.png'" onmouseout="this.src='gg.png'" width="50px" height="50px"> &nbsp &nbsp
  <img src="img.png" onClick="showhide2()" onmouseover="this.src='img.png'" onmouseout="this.src='img.png'" width="50px" height="50px">
  <img src="imgt.png" onClick="showhide3()" onmouseover="this.src='img.png'" onmouseout="this.src='img.png'" width="50px" height="50px">
</div>

都在一个 PHP 页面中。提前致谢。

最佳答案

问题出在 JavaScript 代码中。由于显示属性最初是在 css 中设置的,div.style.display 不会给您 none。所以,你必须稍微改变一下你的代码。像这样:

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

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

关于Javascript onclick 需要 2 次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42700907/

相关文章:

Javascript 轮盘赌 table ,拖放

javascript - 页面加载后更改 HTML 'lang' 属性有什么影响吗?

html - 子菜单内的 CSS 中心和侧 Div

html - material-ui TextField 禁用浏览器自动完成

jquery - 两种不同的 FancyBox 风格

html - 恢复输入类型 = chrome 中的数字微调器

html - 垂直单元对齐

javascript - 表中的jquery隐藏字段

javascript - 为后端出列/取消注册 css 和 js

javascript - 如何隐藏搜索结果框,我希望它们在点击 keyup 功能并被激活时显示出来