码迷,mamicode.com
首页 > 其他好文 > 详细

认识事件冒泡

时间:2014-05-04 10:25:40      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   ext   

一.事件冒泡就是多个元素同时响应了同一个事件,前提是这些元素都绑定了这一个事件。这只是我的定义,感觉好理解些。

称它为冒泡,是因为事件会按照DOM元素的层次结构依次执行,就像水泡一样不断浮向顶端。所以称之为事件冒泡。

这个图便于理解,我用箭头来代替冒泡:

bubuko.com,布布扣

二.通过demo来认识

bubuko.com,布布扣
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <script type="text/javascript" src="/Scripts/jquery-1.7.1.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("span").bind("click", function () {
                var text = $("#msg").html() + "<p>span元素单击事件</p>";
                $("#msg").html(text);
            });
        });
        $(function () {
            $("#content").bind("click", function () {
                var text = $("#msg").html() + "<p>div元素单击事件</p>";
                $("#msg").html(text);
            });
        });
        $(function () {
            $("body").bind("click", function () {
                var text = $("#msg").html() + "<p>body元素单击事件</p>";
                $("#msg").html(text);
            });
        });
    </script>
    <title>BubbleEvent</title>
</head>
<body >
    <div id="content">
        DIV元素
        <span>SPAN元素</span>
    </div>
    <div id="msg"></div>
</body>
</html>
bubuko.com,布布扣

依次点击span,div,body会出现效果图:(body的点击事件只作用于当前内容所占区域,而不是整个网页区域

bubuko.com,布布扣

三.解决事件冒泡

先认识下事件对象,在上面程式中添加一个参数event,点击span元素时,事件对象就会被创建,这个事件对象只有事件函数才能访问,事件函数处理完后

事件对象会销毁。

事件对象具有自己的属性

jquery中stopPropagation()方法可以停止事件冒泡

bubuko.com,布布扣
  $(function () {
            $("span").bind("click", function (event) {
                var text = $("#msg").html() + "<p>span元素单击事件</p>";
                $("#msg").html(text);
                alert(event.type);//event类型是click
                event.stopImmediatePropagation(); //停止事件冒泡方法
            });
        });
bubuko.com,布布扣

此时点击span元素效果:

bubuko.com,布布扣

 

认识事件冒泡,布布扣,bubuko.com

认识事件冒泡

标签:style   blog   class   code   java   ext   

原文地址:http://www.cnblogs.com/paulhe/p/3705674.html

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