<body> <input type="text" value="" id="tf"/> <div style="width:400px; height:200px;border:1px solid #000;display:none" id="con"> <p>1111</p> <p><span>2222</span></p> <p><a href="#">3333</a></p> </div> <script> function e(obj){return document.getElementById(obj)} e('tf').onclick=function(event){ e('con').style.display='block'; stopBubble(event); document.onclick=function(){ e('con').style.display='none'; document.onclick=null; } } e('con').onclick=function(event){ //只阻止了向上冒泡,而沒有阻止向下捕獲,所以點擊con的內部對象時,仍然可以執行這個函數 stopBubble(event); } //阻止冒泡函數 function stopBubble(e){ if(e && e.stopPropagation){ e.stopPropagation(); //w3c }else{ window.event.cancelBubble=true; //IE } } </script> </body>