首页 > 其他 > 详细

认识事件冒泡

时间:2014-05-04 10:24:51      阅读:353      评论:0      收藏:0      [点我收藏+]

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

称它为冒泡,是因为事件会按照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

认识事件冒泡

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!