• javascript阻止事件冒泡的兼容写法及其相关示例


    //阻止事件冒泡的兼容写法
    function stopBubble(e){
        //如果提供了事件对象,则是一个非IE浏览器
        if(e && e.stopPropagation)
            //因此它支持W3C的stopPropagation()方法
            e.stopPropagation();
        else
            //否则,我们需要使用IE的方式来取消事件冒泡
            window.event.cancelBubble = true;
    }
      1 <!doctype html>
      2 <html>
      3 <head>
      4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
      5     <title>js事件冒泡 </title>
      6     <meta name="keywords" content=""/>
      7     <meta name="description" content=""/>
      8     
      9     <style type="text/css">
     10         *{margin:0;padding:0;}
     11         body{font-size:16px;font-family:"微软雅黑";color:#666;
     12             background:#fff;
     13         }
     14         #tab{width:100%;margin:60px auto;;}
     15         #tab td{height:35px;line-height:35px;text-align:center;}
     16     </style>
     17 </head>
     18 <body>
     19     
     20     
     21     
     22     
     23     <table id="tab" border="1">
     24         <tr>
     25             <td><input type="checkbox" /></td>
     26             <td>111</td>
     27             <td>222</td>
     28             <td>333</td>
     29             <td>444</td>
     30             <td>555</td>
     31             <td>
     32                 <a href="javascript:;" onclick="del(event);">删除</a>
     33                 <a href="javacsript:;" onclick="edit(event);">编辑</a>
     34             </td>
     35         </tr>
     36         <tr>
     37             <td><input type="checkbox" /></td>
     38             <td>111</td>
     39             <td>222</td>
     40             <td>333</td>
     41             <td>444</td>
     42             <td>555</td>
     43             <td>
     44                 <a href="javascript:;" onclick="del(event);">删除</a>
     45                 <a href="javacsript:;" onclick="edit(event);">编辑</a>
     46             </td>
     47         </tr>
     48         <tr>
     49             <td><input type="checkbox" /></td>
     50             <td>111</td>
     51             <td>222</td>
     52             <td>333</td>
     53             <td>444</td>
     54             <td>555</td>
     55             <td>
     56                 <a href="javascript:;" onclick="del(event);">删除</a>
     57                 <a href="javacsript:;" onclick="edit(event);">编辑</a>
     58             </td>
     59         </tr>
     60         <tr>
     61             <td><input type="checkbox" /></td>
     62             <td>111</td>
     63             <td>222</td>
     64             <td>333</td>
     65             <td>444</td>
     66             <td>555</td>
     67             <td>
     68                 <a href="javascript:;" onclick="del(event);">删除</a>
     69                 <a href="javacsript:;" onclick="edit(event);">编辑</a>
     70             </td>
     71         </tr>
     72         <tr>
     73             <td><input type="checkbox" /></td>
     74             <td>111</td>
     75             <td>222</td>
     76             <td>333</td>
     77             <td>444</td>
     78             <td>555</td>
     79             <td>
     80                 <a href="javascript:;" onclick="del(event);">删除</a>
     81                 <a href="javacsript:;" onclick="edit(event);">编辑</a>
     82             </td>
     83         </tr>
     84     </table>
     85     <script type="text/javascript">
     86         //点击td给tr加上一个背景色,同时选中checkbox
     87         var tdDoms = document.querySelector("table").getElementsByTagName("td");
     88         for(var i=0;i<tdDoms.length;i++){
     89             tdDoms[i].addEventListener("click",function(){
     90                 var mark = this.parentElement.querySelector("input").checked;
     91                 if(!mark){
     92                     this.parentElement.style.background = "red";
     93                     this.parentElement.querySelector("input").checked = true;
     94                 }else{
     95                     this.parentElement.removeAttribute("style");
     96                     this.parentElement.querySelector("input").checked = false;
     97                 }
     98             });
     99         }
    100         
    101         function del(e){
    102             alert(9);
    103             //e.stopPropagation();
    104             stopBubble(e);
    105         }
    106         
    107         function edit(e){
    108             alert(8);
    109             stopBubble(e);
    110         }
    111         //阻止事件冒泡的兼容写法
    112         function stopBubble(e){
    113             //如果提供了事件对象,则是一个非IE浏览器
    114             if(e && e.stopPropagation)
    115                 //因此它支持W3C的stopPropagation()方法
    116                 e.stopPropagation();
    117             else
    118                 //否则,我们需要使用IE的方式来取消事件冒泡
    119                 window.event.cancelBubble = true;
    120         }
    121     </script>
    122 </body>
    123 </html>
  • 相关阅读:
    JAVA处理Clob大对象
    计院生活第二章 深入虎穴(上)
    我的2008
    Quartz入门到精通
    DOM4J使用教程
    JNI简介及实例
    《JavaScript凌厉开发 Ext详解与实践》3月5日开始上架销售
    计院生活第二章 深入虎穴(下)
    Access转Sql Server问题
    提高网站可用性的10个小技巧
  • 原文地址:https://www.cnblogs.com/sun-rain/p/4894084.html
Copyright © 2020-2023  润新知