js事件1 event对象 事件冒泡

1 什么是event对象

用来获取时事件的详细信息:鼠标位置,键盘位置

2 获取event对象(兼容性写法)

var oEvent = ev || event; 哪个为真取哪个

  • ev:火狐
  • event:IE 和其他浏览器高版本

3 事件冒泡

HTML

<!DOCTYPE html>
<html onclick="alert('html')">
<head lang="en">
    <meta charset="UTF-8">
    <title>事件冒泡</title>
    <style>
        div{
            padding: 100px;
        }
    </style>
</head>
<body onclick="alert('body')">
<div style="background-color: gray" onclick="alert(this.style.backgroundColor)">
    <div style="background-color: green" onclick="alert(this.style.backgroundColor)">
        <div style="background-color: rosybrown" onclick="alert(this.style.backgroundColor)">
        </div>
    </div>
</div>
</body>
</html>

效果

maopao.gif

4 取消冒泡

oEvent.cancleBubble = true;不向父级传递事件

Ex

做一个效果,点按钮出现一个下拉菜单,点页面其他空白位置,使下拉菜单hide

HTML

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>取消冒泡</title>

    <script>
        window.onload = function(){
            var btn = document.getElementsByTagName("button")[0];
            var div = document.getElementsByTagName("div")[0];
            btn.onclick = function(ev){
                div.style.display = "block";
                var myEvent = ev || event;
                myEvent.cancelBubble = true;
            }

            //  document.onclick 而不能用body.onclick  (body需要有内容才能响应事件)
            document.onclick = function(){
                div.style.display = "none";
            }
        }
    </script>
</head>
<body>
<button>选择</button>
<div style="width: 200px;height: 200px;background-color: #888888;margin: 20px 0;display: none">
</div>
</body>
</html>

效果

cancleBubble.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容