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