zoukankan      html  css  js  c++  java
  • 七十二:JavaScript之JS事件之event对象属性与方法

    1.type:事件类型

    根据事件类型,执行不同的js代码

    <body>
    <button id="btn">点击按钮</button>
    <script>
    var btn = document.getElementById('btn');
    var func = function (event){
    console.log(event.type == 'click' ? '点击事件被触发了': event.type == 'mouseout' ? '鼠标移除事件被触发了': '未知事件')
    };
    btn.addEventListener('click', func);
    btn.addEventListener('mouseout', func);
    </script>
    </body>

    2.target和currentTarget

    target:事件源,点击的哪个元素,target就是哪个元素

    currentTarget:事件执行的元素,事件绑定在哪个元素上面,就指向哪个元素

    <div id="parent">
    <div id="child">点击子元素</div>
    </div>
    <script>
    var parent = document.getElementById('parent');
    parent.addEventListener('click', function (event){
    console.log('event.target: ', event.target);
    console.log('event.currentTarget: ', event.currentTarget);
    });
    </script>

    3.preventDefault:阻止默认行为

    4.stopPropagation:阻止事件冒泡或者捕获

    <div id="parent">
    <div id="child">点击子元素</div>
    </div>
    <script>
    var parent = document.getElementById('parent');
    var child = document.getElementById('child');
    parent.addEventListener('click', function (event){console.log('parent');});
    child.addEventListener('click', function (event){
    console.log('child');
    event.stopPropagation(); // 阻止冒泡,不再执行父元素的事件
    });
    </script>

    5.client、page、screen

    clientY:指浏览器顶部底边到点击时鼠标的位置,不包含滚动轴的距离

    pageY:指浏览器顶部底边到点击时鼠标的位置,包含滚动轴的距离

    screenY:指屏幕顶部底边到点击时鼠标的位置(不会根据浏览器窗口缩放改变)

    X轴与Y轴同理可获得

        <style>
    #box{height: 1000px; background: limegreen;}
    </style>
    </head>
    <body>
    <div id="box"></div>
    <script>
    var box = document.getElementById('box');
    box.addEventListener('click', function (event){
    console.log(`clientY:${event.clientY};pageY:${event.pageY};screenY:${event.screenY};`)
    });
    </script>
    讨论群:249728408
  • 相关阅读:
    触发器和存储过程
    转 “automation服务器不能创建对象”的问题的解决方案总结大全
    纯JS幻动片
    SQLServer2000、2005/2008 生成数据字典SQL语句
    根据DEMO做的第一个WCF出现的问题
    让文本框显示行号,兼容ie、火狐
    水晶报表截取指定字符串长度
    20100831 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态
    分页控件
    附加数据库函数
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/14193622.html
Copyright © 2011-2022 走看看