美文网首页
event.stopPropagation()与event.pr

event.stopPropagation()与event.pr

作者: 秀萝卜 | 来源:发表于2020-05-27 14:57 被阅读0次

    今天来看看前端的冒泡和事件默认事件如何处理

    1.event.stopPropagation()方法

    阻止事件冒泡,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开,

    2.event.preventDefault()方法

    阻止默认事件,调用此方法,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素;

    3.return false ;

    同时阻止事件冒泡和阻止默认事件;可以理解为return false就等于同时调用了event.stopPropagation()和event.preventDefault()

    4.demo

    这是html代码,div里面套了一个a标签,连接到百度

    <div class="box1">
        <a href="http://www.baidu.com" target="_blank"></a>
    </div>
    
    第一种    什么也不做
    $(".box1").click(function(){
        console.log("1")//不阻止事件冒泡会打印1,页面跳转;             
    });
     
    
    第二种   阻止冒泡
    $(".box1 a").click(function(event){
        event.stopPropagation();
        //不会打印1,但是页面会跳转;            
    });
        
    $(".box1").click(function(){
        console.log("1")                
    });
    
    第三种  阻止默认事件event.preventDefault();
    $(".box1").click(function(){
        console.log("1");               
    });
     
    $(".box1 a").click(function(event){         
        event.preventDefault();
        //页面不会跳转,但是会打印出1,
    });
     
    
    第四种       阻止冒泡event.stopPropagation();阻止默认事件event.preventDefault() 
    $(".box1").click(function(){
    console.log("1")
    }); 
     
    $(".box1 a").click(function(event){
        event.stopPropagation();
        //阻止默认事件
        event.preventDefault() 
        //页面不会跳转,也不会打印出1
    })
     
    
    第五种  return false
    $(".box1").click(function(){
        console.log("1")                
    }); 
                            
    $(".box1 a").click(function(event){
        return false;  
        //页面不会跳转,也不会打印出1,等于同时调用了event.stopPropagation()
        //和event.preventDefault()
    });
    
    第六种  return 
    $(".box1").click(function(){
        console.log("1")                
    }); 
        
    $(".box1 a").click(function(event){
        return;  
           //页面会跳转,也会打印出1。return的作用是本代码块的代码不再向下执行
    });
    
    

    附赠demo

    <!DOCTYPE html>
    <html>
    <head>
        <title>111</title>
    </head>
    <body>
    <div class="box1">
        <a href="http://www.baidu.com" target="_blank">111111111</a>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
    <script>
    $(".box1").click(function(){
        console.log("1")                
    }); 
                            
    $(".box1 a").click(function(event){
        return  false
        //页面不会跳转,也不会打印出1,等于同时调用了event.stopPropagation()
        //和event.preventDefault()
    });
    </script>
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:event.stopPropagation()与event.pr

          本文链接:https://www.haomeiwen.com/subject/wqmwahtx.html