1. 程式人生 > >點選顯示,再次點選除自身外隱藏效果

點選顯示,再次點選除自身外隱藏效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    #box{
        width: 100px;
        height: 100px;
        background: #ccc;
        display: none;
    }
</style>
<body>
<div id="box">
demo
</div>
<button id="btn">展示</button>
</body>
<script>
    var btn=document.getElementById('btn');
    var box=document.getElementById('box');
    btn.onclick=function (e) {
        box.style.display='block';
        e.stopPropagation();
    }
    box.onclick=function (e) {
        e.stopPropagation();
    }
    document.onclick=function () {
        box.style.display='none';
    }
</script>
</html>

重點是明白點選事件是冒泡的,從裡向外依次擴散。所以只需要在點選裡層元素,比如button和box元素本身的時候要用stopPropagation阻止事件繼續向外擴散。而在點選document的時候,它已經不會繼續向外擴散,因為document本身就是最外層了。 其實就是個事件冒泡的考察。當然對應的還是事件捕獲和冒泡正好相反。