欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jQuery----阻止(阻止冒泡事件、阻止默认事件的执行)

程序员文章站 2024-03-05 15:00:48
...

jQuery----阻止(阻止冒泡事件、阻止默认事件的执行)

<script src="./jquery.min.js"></script>
<script>
    // 阻止冒泡事件和阻止默认事件的执行

    // 冒泡事件
    // 子级标签触发事件,会同时触发,父级标签上,相同类型的事件
    // jquery中,阻止冒泡事件,是不需要考虑兼容的
    // 直接给标签事件处理函数添加参数,也就是 事件对象 
    // 事件对象.stopPropagation();  

    // 阻止默认事件的执行
    // 直接给标签事件处理函数添加参数,也就是 事件对象 
    // 事件对象.preventDefault();  
    // 在 jQuery中 还有一种方式 
    // return false 可以阻止一切,包括 冒泡 和 默认 事件的执行
    // 但是要注意, return false 会阻止其他程序的执行,必须要放在合理的位置上

    

    $('.box').click(function(e){
        // 阻止冒泡事件
        e.stopPropagation();           
        console.log('您点击是的box,div')
    })
    $('.middle').click(function(e){
        // 阻止冒泡事件
        e.stopPropagation();
        console.log('您点击是的middle,div')
    })
    $('.inner').click(function(e){
        // 阻止冒泡事件
        e.stopPropagation();
        console.log('您点击是的middle,div')
    })

    

    
    // 例如,form表单的submit事件

    $('form').submit(function(e){
        let nameVal = $('input').val();
        if(nameVal !== '张三'){
            // 阻止表单的默认提交事件
            e.preventDefault();
        } 
    })


    // 实际项目中,如果使用form发送 ajax请求 
    // 必须添加阻止默认事件执行

    $('form').submit(function(e){
        // 如果是发送ajax请求,即时写了return阻止了函数的执行
        // 但是form表单有默认的提交事件,也会执行提交
        // 必须先阻止默认事件的执行
        e.preventDefault();
        // 如果账号密码正确,会发送ajax请求

        let nameVal = $('input').val();
        if( nameVal !== '张三' ){
            // 如果账号不是张三,就执行return,总之发送请求
            return;
        }

        // const xhr = new XMLHttpRequest()
        // xhr.open(...)
        // xhr.send()
        // xhr.onload = function(){}
    })

</script>
相关标签: jQuery