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>