码迷,mamicode.com
首页 > 编程语言 > 详细

javascript, jQuery阻止默认事件和冒泡事件

时间:2018-10-27 23:33:45      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:cti   img   顺序   list   function   ima   eve   rop   ret   

事件冒泡(event bubbling)

  事件冒泡是指一个元素上的事件被触发,然后这个事件按嵌套顺序在父级元素上触发,直至document根节点。

  例如:

    <!DOCTYPE html>
    <html>
    <head>
      <title>Event Bubbling Example</title>
    </head>
    <body>
      <div id="myDiv">Click Me</div>
    </body>
    </html>

  如果单击了页面中的<div>元素,那么事件会按以下顺序传播:

  <div> --> <body> --> <html> --> document

  也就是说,click 事件首先在<div>元素上发生,这个元素就是被点击的元素。然后,click事件沿着DOM树向上传播,在每一级节点上都会发生,直至document对象。

  下图展示了事件冒泡的过程:

                   技术分享图片

  js阻止事件冒泡

    <script>

      var div = document.getElementById("myDiv")

      div.onclick = function(event) {

        event.stopPropagation() 

        // 或者直接使用return false,即阻止了事件冒泡也阻止了默认事件

        // return false

      }

 

    </script>

  js阻止默认事件

    1.通过on这种方式的绑定的事件,使用return false:

    <script>

      var div = document.getElementById("myDiv")

      div.onclick = function(event) { 

        return false //使用return false,即阻止了事件冒泡也阻止了默认事件

      }

    </script>

    2.addEventListener绑定的,使用evevt.preventDefault():

    <script>

      var div = document.getElementById("myDiv")

      div.addEventListener( " click ",  function(event) { 

        event.preventDefault()

      })

    </script>

  jQuery阻止事件冒泡和默认事件

    阻止事件冒泡:

    $(document).ready(function() {

      $(‘#myDiv‘).click( function(event) {

        event.stopPropagation()

      })

    })

    阻止默认事件:

    $(document).ready(function() {

      $(‘#myDiv‘).click( function(event) {

        event.preventDefault()

      })

    })

javascript, jQuery阻止默认事件和冒泡事件

标签:cti   img   顺序   list   function   ima   eve   rop   ret   

原文地址:https://www.cnblogs.com/kylincat/p/9863808.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!