• Javascript和jquery事件--阻止事件冒泡和阻止默认事件


    阻止冒泡和阻止默认事件—js和jq相同,jq的event是一个全局的变量

    我们写代码的时候常用的都是事件冒泡,但是有的时候我们并不需要触发父元素的事件,而浏览器也有自己的默认行为(表单提交、超链接跳转等)。

    1. 点击按钮子元素的时候不希望触发父元素的点击事件。
    2. 之前提到的mouseout事件。
    3. 在大部分元素上滚动鼠标滑轮都会触发body的界面滑动(如果界面有滚动条)
    4. 在有滚动条的元素中滚动不会触发body界面的滑动,但是滑条滑到底部或者顶部并继续滑动的时候会触发父元素乃至body整体的界面滑动。

    其中,1、2涉及的是事件的冒泡,3、4涉及的则是事件的默认事件。

    在jq中使用的是(其中的event是一个全局变量,也许?我并没有定义它,而是直接拿来用的):

    event.stopPropagation();//阻止冒泡

    event.preventDefault();//阻止默认行为

    在js中:

    function clickfunction(e){

               var event = e||window.event;//兼容

               event.stopPropagation();//阻止冒泡

               event.preventDefault();//阻止默认行为

    }

    可以看出只是event的获取方式不同。

    ---------------------------------------------------------------------------------------------------------------------------

    补充一点,我似乎忘了它的兼容写法

    阻止浏览器默认行为兼容性写法

    event.preventDefault ? event.preventDefault() : (event.returnValue = false);

    阻止冒泡写法

    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);

    当你深入了解,你就会发现世界如此广袤,而你对世界的了解则是如此浅薄,请永远保持谦卑的态度。
  • 相关阅读:
    ClickHouse之访问权限控制
    ClickHouse之集群搭建以及数据复制
    ClickHouse之简单性能测试
    ClickHouse之初步认识
    从完整备份恢复单个innodb表
    MHA快速搭建
    MySQL 5.7最新版本的2个bug
    Greenplum各种Tips(不定时更新)
    MySQL 5.7贴心参数之binlog_row_image
    TCP窗口机制与流量控制
  • 原文地址:https://www.cnblogs.com/liwxmyself/p/10248523.html
Copyright © 2020-2023  润新知