首页 新闻 搜索 专区 学院

这样写有问题吗?这是一个点击按钮div显示,然后点击div或者body,div隐藏的效果

0
悬赏园豆:5 [已解决问题] 解决于 2016-06-07 17:47


var box = document.getElementById("box");
var btn = document.getElementById("btn");

btn.onclick = function(event){
event.stopPropagation();
if(box.style.display = "none"){
box.style.display = "block";
console.log("1")
}else{
box.style.display = "none";
console.log("2")
}


};
window.onclick = function(){
box.style.display = "none"
}

为什么console.log("2")不能执行,不管点几次按钮都只能执行console.log("1"),这是为什么??

leestar的主页 leestar | 初学一级 | 园豆:191
提问于:2016-05-30 17:57
< >
分享
最佳答案
0

if(box.style.display = "none")这句代码有问题

if条件判断语句只允许true或者false,

而上面代码只是赋值语句,应该写成

if(box.style.display == "none")或者

if(box.style.display === "none")

 

收获园豆:5
逐影 | 小虾三级 |园豆:998 | 2016-05-30 18:05

我改了过后第一次点击按钮的时候要点两次div才会显示

leestar | 园豆:191 (初学一级) | 2016-05-31 09:12

@leestar: box原本的样式没有display:none,所以第一次只执行else里的,再点以后才会执行if

逐影 | 园豆:998 (小虾三级) | 2016-05-31 10:03

@逐影: 原本的样式里面写了display:none的

leestar | 园豆:191 (初学一级) | 2016-05-31 10:05

@leestar: 要写成行内样式:

<div style="display:none"></div>

逐影 | 园豆:998 (小虾三级) | 2016-05-31 10:55

@逐影: 好吧 ,可以了,谢谢,大神再问你一下,

 swfobject.js 你用过这个没?
leestar | 园豆:191 (初学一级) | 2016-05-31 11:22

@leestar: 没有,应该是用来处理flash兼容性问题的

逐影 | 园豆:998 (小虾三级) | 2016-05-31 11:30
其他回答(1)
0

s试试toggle()可以进行样式切换

半镜 | 园豆:202 (菜鸟二级) | 2016-05-31 16:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册