关于js控制display:none的问题

我把一个div的display:none放在其外联样式表里,但是用js控制时,如果点击
if(login.style.display=="none"){
login.style.display="block";
}else{
login.style.display="none";
}
每一次点击不会把display变成block;而是再创建一次display:none;
但是当我把display:none直接放在div的属性里时(<div style="display:none" >),怎么就又可以用了
这是为什么啊,必须写在里面吗?不能写在外面?

因为你的if else依次执行了

当你if条件ok的时候 login的style设置为block,此时,else条件又成立,所以依次执行,回到原点。

方法1:
使用jquery的toggle切换函数
<div id='login'>login</div>

$("#login").toggle( 
  function () {
    $(this).show();
  },
  function () {
    $(this).hide();
  }
);

方法2:原始方法
设置全局标记位
var flag = false;

if(flag){
 login.style.display="block";
 flag=false;
}
else{
 login.style.display="none";
 flag=true;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-05
如果没有把你的 js 写在 window.onload = function() { // your js }; 内,你就要注意css和js的先后顺序了,如果css靠后,js就会新建这个样式属性

还有一种方式是把<script>标签写在html最后面。可以保证最后执行
第2个回答  2013-09-04
不会啊,我测试了下都可以直接改变display的值

关于js控制display:none的问题
function () { $(this).hide(); });方法2:原始方法设置全局标记位var flag = false;if(flag){ login.style.display="block"; flag=false;}else{ login.style.display="none"; flag

JS文件为什么要用display:none隐藏
display:none 是隐藏了当前的层,JS文件在这个DIV内 当然也一起被隐藏了!这个隐藏仅仅是在页面当中不显示出来,实际上源代码里面是能够看到的,既然能够看到,那么蜘蛛就能抓到!在一个网站当中如果想让某一个DIV不显示在页面中,但又不想删除该代码,或许以后还能用得到,通常使用display:none。这个没...

display none是什么意思?display none的用法示例
1、如果是通过样式文件或css方式来设置元素的display:none样式,用js设置style.display=""并不能使元素显示,可以使用block或inline等值来代替。通过style="display:none"直接在元素上进行的设置不会有这个问题 。2、如果在样式文件或页面文件代码中直接用display:none对元素进行了隐藏...

为什么css中添加了display:none其它js代码会失效?
display:none以后,元素相当于已经不存在了,如果你有针对该元素的js代码,肯定无法获取到对象,自然代码就会失效。display:none与 visibility :hidden不同,前者表示元素已经不在 文档流 中,不占据任何位置,而后者只是隐藏,元素依然在文档流中,占据着位置。

js中display:none是显示为无,能隐藏的意思,为什么在js中再用display:b...
不知道你在问些什么-_-|| display就是设置显示方式,当然可以不显示,或者以其他方式显示啊。并不等同于visible block是指让元素以块元素方式显示。而跟内联不内联没关系,你写在样式表里一样效果

【js调用display:none失效的问题】
JS不在文档流,隐藏JS不代表隐藏了JS生成的HTML。你要看统计代码最后生成的HTML是什么,如果有样式,就在你的CSS里面重定义样式为 display就行了

CSS中定义了display:none,js怎么把它显示出来,不仅是Block
如果是通过样式文件或css方式来设置元素的display:none样式,用js设置style.display=""并不能使元素显示,可以使用block或inline等值来代替。通过style="display:none"直接在元素上进行的设置不会有这个问题

js怎么控制a标签的显示和隐藏
href="#"style="display:none">锚点连接 如要要让不显示的a标签显示只需要将style中的"display:none"这个属性给去掉;因此就可以通过js来动态的设置这个a标签的属性达到控制标签显示和隐藏切换的效果。<SCRIPT LANGUAGE="JavaScript"> function hide(){ document.getElementById("anchor").style.display...

js设置div显示隐藏?
js控制div显示隐藏的问题首先,打开html编辑器,新建一个html文件,例如:index.html。首先我们创建一个div,和一个按钮。用按钮的点击来控制div的显示或隐藏。02添加一个样式名叫hide的样式,主要是设置display=none,即隐藏。首先写出架构,两个buttod(按钮)。下面是一个div存放文本和在后面的被js控制...

ASP 怎样用一个js 改变 style="DISPLAY:none "> 从而控制此模块文件显示...
style="display:none;">要显示 的内容 function showmenu( id ){ var div = document.getElementById(id);var sho = div.style.display;if( sho == 'none' ){ div.style.display = '';}else{ div.style.display = 'none';} } showmenu('block'); ...

相似回答