jQuery 事件总结

版权声明:转载请注明出处 https://blog.csdn.net/SOALIN228/article/details/84454940

DOM0级事件和2级事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
</head>
<body>
    <p id="example" onclick="console.log('Click');">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officiis praesentium, sapiente? Earum, molestiae rem. Enim, perspiciatis quisquam! A consequatur culpa error et, natus nobis placeat qui rem, suscipit tempora tenetur.
    </p>
    <div id="p1">
        <div id="p1-1">
            <div id="p1-1-1">
                <div id="p1-1-1-1">
                    <p>
                        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet architecto beatae delectus enim ipsum iusto laborum, libero minus perspiciatis quae quidem rem sed soluta velit veniam voluptatem voluptates voluptatibus. Repudiandae.
                    </p>
                </div>
            </div>
        </div>
    </div>
 <script>
    document.getElementById('p1').onclick = function() {
        console.log('p1'); 
    };
    document.getElementById('p1-1').onclick = function() {
        console.log('p1-1');
    };
    document.getElementById('p1-1-1').onclick = function() {
        console.log('p1-1-1');
    };
    document.getElementById('p1-1-1-1').onclick = function(e) {
        e.cancelBubble = true; //阻止冒泡
        console.log('p1-1-1-1'); // dom0级后面的会覆盖前面的
    };
    
	document.getElementById('p1').addEventListener('click', function() { 
        console.log('p1');	//dom2级后面不会覆盖前面的时间
    }, false); //冒泡不捕获(反之捕获)
</script>
</body>
</html>

jQuery事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
</head>
<body>
    <h2>title</h2>
    <div class="item">
        <p>Lorem ipsum dolor sit amet.</p>
    </div>
    <ul>
        <li class="item1">新闻标题-1</li>
        <li class="item2">新闻标题-2</li>
        <li class="item3">新闻标题-3</li>
        <li class="item4">新闻标题-4</li>
        <li class="item5">新闻标题-5</li>
        <li class="item6">新闻标题-6</li>
        <li class="item7">新闻标题-7</li>
        <li class="item8">新闻标题-8</li>
        <li class="item9">新闻标题-9</li>
    </ul>
    <button id="all">全部标记为已读</button>
    <div id="p1">
        <div id="p1-1">
            <div id="p1-1-1">
                <div id="p1-1-1-1">
                    <p>
                        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet architecto beatae delectus enim ipsum iusto laborum, libero minus perspiciatis quae quidem rem sed soluta velit veniam voluptatem voluptates voluptatibus. Repudiandae.
                    </p>
                </div>
            </div>
        </div>
    </div>
<script src="jquery-1.12.4.js"></script>
<script>
    $(function() {
       $('ul').on('click', function (event) { //添加事件
           console.log('%o clicked', $(event.target)); //运用冒泡实现对子元素的监听(事件委托)
       })
       $('p').on('click', function (e) {
           e.stopPropagation() //阻止冒泡
           console.log('clicked p');
       })
       $('p').one('click', function(e) { //只执行一次的事件
            console.log('clicked p');
        });
        $('p').off('click') //移除click事件
        
        $('li').on('click', function(e, arg1, arg2) {
            console.log('%o 已读', $(this));
            console.log(arg1);
            console.log(arg2);
            return $(this);
        });

        $('#all').on('click', function() {
            console.log($('li').trigger('click', [1, 2])); //所有匹配元素的事件
        });
    });
</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/SOALIN228/article/details/84454940