<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
window.onload=function(){
var btn=document.getElementById("btn");
var div=document.getElementById("div");
var btn2=document.getElementById("btn2");
function addEvent(ele,type,hander){
if (ele.addEventListener) {
ele.addEventListener(type,hander,false);
}else if(ele.attachEvent){
ele.attachEvent(type,hander);
}else{
ele['on'+type]=hander;
};
}
addEvent(btn,'click',showMsg)
addEvent(btn2,'click',hideMsg)
function showMsg(){
if(div.style.display=="none"){
div.style.display="block";
}
}
function hideMsg(){
if(div.style.display=="block"){
div.style.display="none";
}
}
}
</script>
<style type="text/css">
#div{
width:300px;
height:300px;
background-color:skyblue;
display: none;
}
</style>
</head>
<body>
<button id="btn">click</button>
<div id="div"><button id="btn2">hide</button></div>
</body>
</html>虽然这个if判断语句很多余吧,但突然发现了个问题
1.把display属性用内联样式直接放到div里的话,效果可以运行。
2.将hideMsg效果合并到showMsg里用else的话也可以运行。
但用嵌入式CSS的时候,1的情况无法运行,2的情况在浏览器显示则是点击一下变成内联,再点击一下才有效果。为什么?
夫唯不争