Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 它在第二次单击时关闭DIV,为什么?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 它在第二次单击时关闭DIV,为什么?

Javascript 它在第二次单击时关闭DIV,为什么?,javascript,jquery,html,Javascript,Jquery,Html,我有一个javascript函数,它应该在单击时关闭div。但是,它在第二次单击时起作用。我怎样才能避免呢 JavaScript HTML 您的代码不会处理元素上的计算样式,因此在第一次单击时,元素仍处于“显示:块”状态 用jQuery试试这个: function showhide(id) { $('#'+id).toggle(); } 如果元素是隐藏的,则会显示该元素。试试这个,如果您想要直接的javascript,jQuery的答案会更好: 函数showhided{ var e=d

我有一个javascript函数,它应该在单击时关闭div。但是,它在第二次单击时起作用。我怎样才能避免呢

JavaScript

HTML


您的代码不会处理元素上的计算样式,因此在第一次单击时,元素仍处于“显示:块”状态

用jQuery试试这个:

function showhide(id) {
   $('#'+id).toggle();
}

如果元素是隐藏的,则会显示该元素。

试试这个,如果您想要直接的javascript,jQuery的答案会更好:

函数showhided{ var e=document.getElementById; 如果e.style.display!='none'e.style.display='none'; else e.style.display='block'; } 所容纳之物 点击我
e、 style是指div style=..的style属性。。。。首次到,div上没有样式属性。条件为false,代码将样式属性设置为:

<div style="display: block">
第二次到,if条件为true,并且块的样式设置为“无”。因此它将消失。

默认情况下,“样式”属性为空;例如:

var e = document.createElement('div');
e.style.display; // ""
简单地扭转这种情况应该可以解决以下问题:

function showhide(id) {
    var e = document.getElementById(id);
    e.style.display = e.style.display == 'none' ? 'block' : 'none';
}
它对我有用。 Html代码

  <div id="foota123">
      Content
  </div>
  <div onclick="showhide('foota123')" class="iks">X</div>
剧本

<script type="text/javascript">
   function showhide(id) {
var e = document.getElementById(id);

if(e.style.display == 'block'){
  e.style.display = 'none';
}
else{
   e.style.display = 'block';
   }
}
 </script>

或者style=block也是一个更好的选择。

foota123的初始样式是什么?.mydiv{position:relative;z-index:115}您正在显示一个常规JavaScript函数,但是您已经用jQuery标记了这个问题,那么为什么不使用jQuery呢?这不应该是style=display:block吗?
  <div id="foota123">
      Content
  </div>
  <div onclick="showhide('foota123')" class="iks">X</div>
<script type="text/javascript">
   function showhide(id) {
var e = document.getElementById(id);

if(e.style.display == 'block'){
  e.style.display = 'none';
}
else{
   e.style.display = 'block';
   }
}
 </script>