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/
  • 相关阅读:
    THUSC2018退役预定
    TAT
    dsu on tree(CF600E Lomsat gelral)
    Bzoj4784: [Zjoi2017]仙人掌
    [APIO2018] Duathlon 铁人两项
    仙人掌基础
    Bzoj3672: [Noi2014]购票
    CF809E Surprise me!
    虚树(Bzoj3611: [Heoi2014]大工程)
    Bzoj3197: [Sdoi2013]assassin
  • 原文地址:https://www.cnblogs.com/tongbiao/p/6801392.html
Copyright © 2011-2022 走看看