preventDefault()方法和stopPropagation()方法的使用

本文深入解析JavaScript中用于阻止浏览器默认行为的preventDefault()方法和用于阻止冒泡事件传播的stopPropagation()方法,通过实例演示如何在实际开发中应用这两个方法来优化用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、preventDefault()方法

       preventDefault()方法是用来阻止浏览器默认事件。

       <!DOCTYPE html>

       <html>

           <head>

             <meta http-equiv="Content-Type" content="text/html" charset="utf-8">

          </head>

          <body>

                 <div class="content">

                     <input type="text" name="test" class="test" />

                 </div>

                 <script type="text/javascript">

                      //input的默认事件:点击input框时候会聚焦

                     //咱们要做的就是阻止dom元素的默认事件

                     var input = document.getElementsByClassName("test")[0] ;

                     input.addEventListener("mousedown",function(evt){

                            alert("执行了mousedown的事件!!") ;

                            //这里调用preventDefault()方法,就会阻止input框默认的聚焦事件

                             evt.preventDefault();

                           },false);

                 </script>

          </body>

      </html>


2、stopPropagation()方法

       stopPropagation()方法是用来阻止冒泡事件。

       <!DOCTYPE html>

       <html>

           <head>

             <meta http-equiv="Content-Type" content="text/html" charset="utf-8">

             <style type="text/css">

                  .out{

                       display:block;

                       width:200px ;

                       height:200px;

                       background-color:#8dEE23 ;

                      }

                  .inner{

                       display:block;

                       width:100px ;

                       height:100px;

                       background-color:#000000 ;       

                     }

             </style>

          </head>

          <body>

                 <div class="content">

                      <div class="out">

                            <div class="inner">

                            </div>

                      </div>

                 </div>

                 <script type="text/javascript">

                    //注意:冒泡事件是发生在父子元素之间

                    var out = document.getElementsByClassName("out")[0];

                    var inner = document.getElementsByClassName("inner")[0];

                    out.addEventListener("click",function(evt){

                          alert("触发了out的点击事件") ;

                         },false) ;

                    inner.addEventListener("click",function(evt){

                           alert("触发了inner的点击事件") ;

                           //在此处调用stopPropagation()会阻止冒泡事件

                          evt.stopPropagation() ;

                        },false) ;  

                 </script>

          </body>

      </html>


要点:记住preventDefault是用来阻止浏览器的默认事件,stopPropagation是用来阻止冒泡事件(父子元素之间),记住            这个,学习或开发的时候就不会混淆。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值