js实现的点击div区域外隐藏div区域
首先看下JS的事件模型,JS事件模型为向上冒泡,如onclick事件在某一DOM元素被触发后,事件将跟随节点向上传播,直到有click事件绑定在某一父节点上,如果没有将直至文档的根。
阻止冒泡:1、stopPropagation()对于非IE浏览器。2、cancelBubble属性为true,对于IE浏览器,
而Jquery已经有兼容浏览器的方法,event.stopImmediatePropagation();
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8"/>
<scripttype="text/javascript"src="js/jquery-1.4.4.min.js"></script>
<title></title>
</head>
<styletype="text/css">
body
{
background-color:#999999;
}
#myDiv
{
background-color:#FFFFFF;
width:250px;
height:250px;
display:none;
}
</style>
<body>
<inputid="btn"type="button"value="显示DIV"/>
<divid="myDiv">
Thisisadiv;
</div>
</body>
<scripttype="text/javascript">
varmyDiv=$("#myDiv");
$(function()
{
$("#btn").click(function(event)
{
showDiv();//调用显示DIV方法
$(document).one("click",function()
{//对document绑定一个影藏Div方法
$(myDiv).hide();
});
event.stopPropagation();//阻止事件向上冒泡
});
$(myDiv).click(function(event)
{
event.stopPropagation();//阻止事件向上冒泡
});
});
functionshowDiv()
{
$(myDiv).fadeIn();
}
</script>