zoukankan      html  css  js  c++  java
  • jquery 中的事件冒泡

    废话少说,先来一段代码热热身:

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <title>demo</title>
     5     <meta charset="utf-8">
     6     <script src="js/jquery.min.js"></script>
     7 </head>
     8 <body>
     9     <div id="content">
    10         外层div元素
    11         <span>内层span元素</span>
    12         外层div元素
    13     </div>
    14     <div id="msg"></div>
    15 </body>
    16 <script>
    17 $(function(){
    18     //位span元素绑定click事件
    19     $("span").click(function(){
    20         var txt = $('#msg').html()+"<p>内层span元素被击中</p>";
    21         $("#msg").html(txt); 
    22     });
    23     //位div元素绑定click事件
    24     $("#content").click(function(){
    25         var txt = $("#msg").html()+"<p>外层的div元素被击中</p>";
    26         $("#msg").html(txt);
    27     })
    28     //为body元素绑定click事件
    29     $("body").click(function(){
    30         var txt = $("#msg").html()+"<p>body元素被击中</p>";
    31         $("#msg").html(txt);
    32     })
    33 })
    34 </script>
    35 </html>
    View Code

    网页上有两元素,其中一个元素嵌套在另一个元素里,并且都被绑定了click事件,同时<body>元素上也绑定了click事件。

    当单击内部的<span>元素,即触发<span>元素的click事件时,会输出3条记录,如图所示:

         

    只单击内部的<span>元素,就会触发<div>元素和<body>元素上的click事件,这就是由于事件冒泡引起的。

    在单击<span>元素的同时,也单击了包含<span>元素的<div>元素和包含<div>元素的<body>元素,并且每一个元素都会按照特定的顺序响应click事件。

    为了解决这一问题,我们在这里得提到“事件对象”这一概念:

    $("element").bind("click",function(event){ //event:事件对象

    }); 

    这样,当单击“element”元素时,事件对象就被创建了。这个事件对象只有事件处理函数才能够访问到。事件处理函数执行完毕之后,事件对象就被销毁。

    停止事件冒泡:

    停止事件冒泡可以阻止事件中其他对象的事件处理函数被执行。在jquery中提供了stopPropagation()方法来停止事件冒泡。

    1 $("span").bind("click",function(event){
    2         var txt = $('#msg').html()+"<p>内层span元素被击中</p>";
    3         $("#msg").html(txt); 
    4         event.stopPropagation();   //停止事件冒泡
    5 })

    这样,当单击<span>元素时,就只会输出相应的内容,而不会输出其他内容。你也可以试着给<div>元素加上该方法,效果一定不错哦!!!

  • 相关阅读:
    Java OCR tesseract 图像智能字符识别技术
    模板
    模板
    奇怪的haproxy 跳转
    奇怪的haproxy 跳转
    tomcat path配置
    tomcat path配置
    Mongodb 安装迁移
    image.xx.com 通过haproxy 跳转到内部图片服务器
    mysqldump 利用rr隔离实现一致性备份
  • 原文地址:https://www.cnblogs.com/heyijing/p/4973289.html
Copyright © 2011-2022 走看看