关于js控制display:none的问题

我把一个div的display:none放在其外联样式表里,但是用js控制时,如果点击if(login.style.display=="none"){login.styl... 我把一个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" >),怎么就又可以用了
这是为什么啊,必须写在里面吗?不能写在外面?
展开
 我来答
yugi111
推荐于2017-11-26 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
因为你的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;
}
百度网友aec2360
2013-09-05
知道答主
回答量:10
采纳率:0%
帮助的人:7.9万
展开全部
如果没有把你的 js 写在 window.onload = function() { // your js }; 内,你就要注意css和js的先后顺序了,如果css靠后,js就会新建这个样式属性

还有一种方式是把<script>标签写在html最后面。可以保证最后执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尋_常
2013-09-04 · TA获得超过837个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:498万
展开全部
不会啊,我测试了下都可以直接改变display的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式