zoukankan      html  css  js  c++  java
  • js阻止浏览器、元素的默认事件与js阻止事件冒泡、阻止事件流

    嵌套的div元素,如果父级和子元素都绑定了一些事件,那么在点击最内层子元素时可能会触发父级元素的事件,下面介绍一下js阻止默认事件与js阻止事件冒泡示例,大家参考使用吧
     

    1. event.preventDefault();  -- 阻止元素的默认事件。
    注:a元素的点击跳转的默认事件 ,

    button,radio等表单元素的默认事件 ,

    div 元素没有默认事件

    例:

    复制代码代码如下:

    <a href="http://www.baidu.com" target="_black">百度</a>
    复制代码代码如下:

    var samp = document.getElementByTagName("a");
    samp.addEventListener("click",function(e){e.preventDefault()},false);

    解释:点击链接的时候正常情况下会发生跳转,但是现在我们阻止了它的默认事件,即跳转事件,这时就不会跳转到百度了。


    2. event.stopPropagation();  -- 阻止元素冒泡事件

    注:嵌套元素一般都存在冒泡事件,会带来某些影响

    例:

    复制代码代码如下:

    <div id="c1" onclick="alert(1)">
    <div id="c2" onlick="alert(2)">
    <input type="button" id="c3" value="点击" onclick="alert(3)">
    </div>
    </div>

    这里点击button的时候,浏览器会先后弹出3,2,1,本来只想让绑定在button上的事件发生,却无意中触发了它的两个父级上的事件,这里我们只是做了一个简单测试,试想如果在项目开发中,某个按钮和他的父级同时绑定了很重要的事件,那么结果会惨不忍睹。这时的处理方法就是阻止冒泡事件。

    给input注册click事件,同时阻止它的冒泡事件

    复制代码代码如下:

    document.getElementById('c3').addEventListener('click',function(e){e.stopPropagation()},false);

    OK!!!了

  • 相关阅读:
    javaweb学习总结(五)——Servlet开发(一)
    机器学习(1)2017.3.2
    Java中三种变量
    Java中javadoc注释使用规则 转
    java中main函数的位置必须在public class类中么? (eclipse,editplus环境下)
    【C++】 私有成员变量的理解
    怕忘了
    隐写命令方法总结-(研究生创新联盟高校首届研究生网络与信息安全技术大赛)
    kali源
    几款chrome扩展和应用
  • 原文地址:https://www.cnblogs.com/zhangruiqi/p/7538899.html
Copyright © 2011-2022 走看看