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/
  • 相关阅读:
    第二次作业
    复盘一个商品期货的通用模型
    C#如何获取枚举(Enum)变量的值
    [C#]Socket通信BeginReceive异步接收数据何时回调Callback
    [C#]浮点数除零无法捕获异常的解决办法
    js对字符串进行编码方法总结
    web最全资源网址
    简单粗暴地理解js原型链--js面向对象编程
    常见前端九十道面试题及答案-韩烨
    C语言文件读写,复制
  • 原文地址:https://www.cnblogs.com/tongbiao/p/6801392.html
Copyright © 2011-2022 走看看