1. 程式人生 > >冒泡事件與事件委托

冒泡事件與事件委托

冒泡事件 事件委托 jquery

事件發生:任何一次操作,都會產生相應的事件
事件監聽:程序中是寫了代碼對關註事件進行捕捉和處理


冒泡事件:子元素觸發的事件會向上傳遞,如果父類有監聽同類型事件,會被激活

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>冒泡事件</title>
    <style>
        .red{
            width: 400px;
            height: 400px;
            margin: 10px;
            background-color: red;
        }
        .green{
            width: 300px;
            height: 300px;
            background-color: green;
        }
        .blue{
            width: 200px;
            height: 200px;
            background-color:blue;
        }
    </style>
    <script src="../js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            $(‘.blue‘).click(function(){
                alert(‘blue‘);
            });

            $(‘.green‘).click(function(){
                alert(‘green‘);
            });

            $(‘.red‘).click(function(){
                alert(‘red‘);
            });

            $(window).click(function(){
                alert(‘window‘);
            });

        })

    </script>
</head>
<body>
    <div class="red">
        <div class="green">
            <div class="blue">
            </div>
        </div>
    </div>    
</body>
</html>

效果如下:
事件冒泡:子元素事件向上傳遞
點擊藍色方塊--->綠色-->紅色-->window
技術分享圖片


事件委托:利用冒泡原理,把一些事件集中處理
jquery中使用delegate方法:
使用樣列:
$(‘獲取父類元素‘).delegate(‘子元素‘,‘事件‘,function(){
})

<head>
<title>jquery事件的委托</title>
    <script src="../js/jquery-1.12.4.min.js"></script>
    <script>
        $(function(){
            // 事件委托使用delegate, 將子元素事件委托給父類元素處理
            // 好處是我們不需要循環綁定每一個子元素事件.提升性能
            $(‘.list‘).delegate(‘li‘,‘click‘,function(){

                $(this).css({‘color‘:‘red‘})
            })

        })
    </script>
</head>
<body>
    <ul class="list">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
</body>

冒泡事件與事件委托