zoukankan      html  css  js  c++  java
  • js阻止冒泡和默认事件(默认行为)详解- jquery DefaultPrevented 函数

    <!DOCTYPE html>
    <html>
      
      <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
          #box {
             300px;
            height: 300px;
            background: red;
            display: none;
          }
        </style>
        <script type="text/javascript">
          window.onload = function() {
              var btn = document.getElementById('btn');
              var box = document.getElementById('box');
              btn.onclick = function(ev) {
                var oEvent = ev || event;
                box.style.display = 'block';
                //oEvent.cancelBubble = true;//高版本浏览器
                stopBubble(oEvent);
                //在低版本的chrome和firefox浏览器中需要兼容性处理
                //高版本chrome和firefox浏览器直接使用上面这行代码即可
              }
              document.onclick = function() {
                box.style.display = 'none';
              }
      
            }
            //阻止冒泡事件的兼容性处理
          function stopBubble(e) {
            if(e && e.stopPropagation) { //非IE
              e.stopPropagation();
            } else { //IE
              window.event.cancelBubble = true;
            }
          }
        </script>
      </head>
      
      <body>
        <input type="button" id="btn" value="语言" />
        <div id="box"></div>
      </body>
      
    </html>

     

    jquery DefaultPrevented转载

       

    阻止默认事件行为的触发。

    例如,在执行这个方法后,如果点击一个锚点,就不会让浏览器跳转到新的 URL 去了。我们可以用 event.isDefaultPrevented() 来确定这个方法是否(在那个事件对象上)调用过了。

      
    

    <!DOCTYPE html>
     

    <html>
      <head>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
      </head>
      <body>
          <a href="http://www.3qhouse.com">default click action is prevented</a>
          <div id="log"></div>
           <script>
                $("a").click(function(event) {
                   event.preventDefault();
                   $('<div/>').append('default ' + event.type + ' prevented').appendTo('#log');
                 });
           </script>
        </body>
      </html>


    说明:对超级链接“<a>”,就有自身默认的跳转到新的URL行为,一旦给添加了js的点击事件,那么执行顺序是,首先执行click这个点击事件,然后才执行“<a>”的默认行为。
    所以上面的示例中点击
    之后,首先执行了jquery的click事件,而在click事件处理方法中通过event.preventDefaule()阻止了默认的行为。
    https://www.tongbiao.xyz/
  • 相关阅读:
    整理一下反射
    数据查询--整理(更新中)
    【Django】Django model与数据库操作对应关系(转)
    给定 2 个正整数 a, b,a 和 b 最多可能有 40 位,求出 a + b 的和(C语言实现)
    c++和QT实现俄罗斯方块,使用GraphicsView。
    C语言的动态函数库和静态函数库的生成和使用(linux环境下)
    linux内核驱动的知识要点
    简单的linux内核移植知识
    快速排序c++/c实现
    c语言系统函数——进程的创建
  • 原文地址:https://www.cnblogs.com/tongbiao/p/6801392.html
Copyright © 2011-2022 走看看