• <bdo id='rzraJ'></bdo><ul id='rzraJ'></ul>

      <small id='rzraJ'></small><noframes id='rzraJ'>

      <legend id='rzraJ'><style id='rzraJ'><dir id='rzraJ'><q id='rzraJ'></q></dir></style></legend>
      <tfoot id='rzraJ'></tfoot>

      <i id='rzraJ'><tr id='rzraJ'><dt id='rzraJ'><q id='rzraJ'><span id='rzraJ'><b id='rzraJ'><form id='rzraJ'><ins id='rzraJ'></ins><ul id='rzraJ'></ul><sub id='rzraJ'></sub></form><legend id='rzraJ'></legend><bdo id='rzraJ'><pre id='rzraJ'><center id='rzraJ'></center></pre></bdo></b><th id='rzraJ'></th></span></q></dt></tr></i><div id='rzraJ'><tfoot id='rzraJ'></tfoot><dl id='rzraJ'><fieldset id='rzraJ'></fieldset></dl></div>

      js事件冒泡、事件捕获和阻止默认事件详解

      事件冒泡是指当一个元素触发了某个事件时,该事件会从子元素一直冒泡到祖先元素。例如,当一个按钮被点击时,点击事件会首先被触发,然后该事件会向外冒泡,一直到文档根节点才停止。
        • <tfoot id='iQWF2'></tfoot>

          <legend id='iQWF2'><style id='iQWF2'><dir id='iQWF2'><q id='iQWF2'></q></dir></style></legend>

              <tbody id='iQWF2'></tbody>

            <small id='iQWF2'></small><noframes id='iQWF2'>

              • <bdo id='iQWF2'></bdo><ul id='iQWF2'></ul>
                <i id='iQWF2'><tr id='iQWF2'><dt id='iQWF2'><q id='iQWF2'><span id='iQWF2'><b id='iQWF2'><form id='iQWF2'><ins id='iQWF2'></ins><ul id='iQWF2'></ul><sub id='iQWF2'></sub></form><legend id='iQWF2'></legend><bdo id='iQWF2'><pre id='iQWF2'><center id='iQWF2'></center></pre></bdo></b><th id='iQWF2'></th></span></q></dt></tr></i><div id='iQWF2'><tfoot id='iQWF2'></tfoot><dl id='iQWF2'><fieldset id='iQWF2'></fieldset></dl></div>

                JS事件冒泡、事件捕获和阻止默认事件

                事件冒泡

                事件冒泡是指当一个元素触发了某个事件时,该事件会从子元素一直冒泡到祖先元素。例如,当一个按钮被点击时,点击事件会首先被触发,然后该事件会向外冒泡,一直到文档根节点才停止。

                事件捕获

                事件捕获是指当一个元素触发了某个事件时,该事件会从祖先元素一直捕获到子元素。例如,当一个按钮被点击时,点击事件会从文档根节点开始捕获,直到被点击的按钮才停止。

                阻止默认事件

                有些元素会有默认的事件行为,例如a标签的点击会跳转页面,表单的提交会刷新页面等。为了防止这些默认行为发生,我们可以使用preventDefault()方法来中止默认事件的执行。例如,当点击一个a标签时,可以使用以下代码防止跳转:

                document.querySelector('a').addEventListener('click', function(event) {
                  event.preventDefault();
                });
                

                事件流模型

                事件流模型分为两种:捕获型事件流和冒泡型事件流。在捕获型事件流中,事件首先从最外层的祖先元素被捕获,接着沿着树形结构依次触发,最后到达目标元素;在冒泡型事件流中,事件首先从目标元素开始,沿着树形结构依次向上冒泡,最终到达祖先元素。默认情况下,所有的事件都是冒泡型事件流。

                示例一:事件冒泡

                <body>
                  <div id="grandparent">
                    <div id="parent">
                      <div id="child"></div>
                    </div>
                  </div>
                </body>
                
                document.querySelector('#grandparent').addEventListener('click', function(){
                  console.log('Grandparent clicked');
                });
                
                document.querySelector('#parent').addEventListener('click', function(){
                  console.log('Parent clicked');
                });
                
                document.querySelector('#child').addEventListener('click', function(){
                  console.log('Child clicked');
                });
                

                当点击child元素时,依次输出“Child clicked”,“Parent clicked”和“Grandparent clicked”。

                示例二:阻止默认事件

                <body>
                  <a href="http://www.baidu.com">点击跳转</a>
                </body>
                
                document.querySelector('a').addEventListener('click', function(event){
                  event.preventDefault();
                  console.log('Link clicked, but default behavior prevented');
                });
                

                当点击a标签时,阻止了跳转并输出“Link clicked, but default behavior prevented”。

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                treetable.js没有checked做联动。于是自己基于treetable开发的一个小功能,希望能和大家一起交流一下。 1. 在当前HTML文档checked监听函数中增加以下代码 //联动 table.on('checkbox(quan_list)', function(obj){ //console.log(obj); //当前id var id = obj.
                当使用Javascript的attachEvent来绑定事件时,我们希望能够给事件处理函数传递一些参数,但是attachEvent本身并不支持传递参数。下面介绍两种解决方法。
                KnockoutJS是一款流行的JavaScript库,针对一个web应用程序的建立提供了比较好的基础架构。其中,表单的数据绑定功能是KnockoutJS最为常用的功能之一。本文将详细讲解KnockoutJS 3.x
                下面是用javascript实现改善用户体验之alert提示效果的完整攻略。
                在学习JavaScript编写贪吃蛇游戏之前,需要掌握以下的前置知识:

                  <i id='XGE1S'><tr id='XGE1S'><dt id='XGE1S'><q id='XGE1S'><span id='XGE1S'><b id='XGE1S'><form id='XGE1S'><ins id='XGE1S'></ins><ul id='XGE1S'></ul><sub id='XGE1S'></sub></form><legend id='XGE1S'></legend><bdo id='XGE1S'><pre id='XGE1S'><center id='XGE1S'></center></pre></bdo></b><th id='XGE1S'></th></span></q></dt></tr></i><div id='XGE1S'><tfoot id='XGE1S'></tfoot><dl id='XGE1S'><fieldset id='XGE1S'></fieldset></dl></div>

                  <small id='XGE1S'></small><noframes id='XGE1S'>

                    • <bdo id='XGE1S'></bdo><ul id='XGE1S'></ul>
                    • <legend id='XGE1S'><style id='XGE1S'><dir id='XGE1S'><q id='XGE1S'></q></dir></style></legend>
                            <tbody id='XGE1S'></tbody>
                          <tfoot id='XGE1S'></tfoot>