zoukankan      html  css  js  c++  java
  • javascript DOM事件总结

      1 <html>
      2 <title>事件</title>
      3 <meta charset="utf-8"/>
      4 <body>
      5 <div id="box">
      6  <input type="button" value="按钮" id="btn" onclick="showMes()"/>
      7  <input type="button" value="按钮2" id="btn2"/>
      8  <input type="button" value="按钮3" id="btn3"/>
      9  <a href="event.html" id="go" target="_blank">跳转</a>
     10 </div>
     11 </body>
     12 </html>
     13 <script>
     14 /**
     15 *    非IE
     16 *    event.type 获取事件的类型
     17 *    event.target属性 获取事件的目标
     18 *    event.stopPropagation()方法;//阻止事件冒泡
     19 *    event.preventDefault()方法;//阻止事件默认行为
     20 *
     21 *   IE
     22 *    event.type 获取事件的类型
     23 *    event.srcElement
     24 *    event.cancelBubble属性阻止事件冒泡
     25 *     设置为true为阻止冒泡,设置为false不阻止冒泡
     26 *    returnValue=false 阻止事件默认行为
     27 *
     28 */
     29 function showMes(event){
     30  event = event || window.event;
     31  var ele = event.target || event.srcElement;
     32  alert(ele.nodeName);
     33 }
     34 
     35 function showbox(){
     36  alert('这里放盒子');
     37 }
     38 
     39 function stopGoto(event){
     40  //event.type 获取事件的类型
     41  //event.target属性 获取事件的目标
     42  event.stopPropagation();//阻止事件冒泡
     43  event.preventDefault();//阻止事件默认行为
     44 }
     45 
     46 var btn2 = document.getElementById("btn2");
     47 var btn3 = document.getElementById("btn3");
     48 var go = document.getElementById("go");
     49 btn2.onclick = function(){
     50  alert('通过DOM0级添加事件');
     51 }
     52 btn2.onclick = null;
     53 
     54 //DOM2级事件
     55 var eventUtil = {
     56  
     57  //添加句柄
     58  addHandler:function(element,type,handler){
     59   if(element.addEventListener){
     60    element.addEventListener(type,handler,false);
     61   }else if(element.attachEvent){
     62    element.attachEvent('on'+type,handler);
     63   }else{
     64    element['on'+type] = handler;
     65   }
     66  },
     67  //删除句柄
     68  removeHandler:function(element,type,handler){
     69   if(element.removeEventListener){
     70    element.removeEventListener(type,handler,false);
     71   }else if(element.detachEvent){
     72    element.detachEvent('on'+type,handler);
     73   }else{
     74    element['on'+type] = null;
     75   }
     76  },
     77 
     78  getEvent:function(event){
     79   return event ? event : window.event;
     80  },
     81  
     82  getElement:function(event){
     83   return event.target || event.srcElement;
     84  },
     85 
     86  preventDefault:function(event){
     87   if(event.preventDefault){
     88    event.preventDefault();
     89   }else{
     90    event.returnValue = false;
     91   }
     92  },
     93  
     94  stopPropagation:function(event){
     95   if(event.stopPropagation){
     96    event.stopPropagation();
     97   }else{
     98    event.cancelBubble = true;
     99   }
    100  }
    101 };
    102 
    103 eventUtil.addHandler(btn3,"click",showMes);
    104 //eventUtil.removeHandler(btn3,"click",showMes);
    105 eventUtil.addHandler(box,"click",showbox);
    106 eventUtil.addHandler(go,"click",stopGoto);
    107 </script>
  • 相关阅读:
    教你一招Linux下文本比对方法
    Linux下find与exec的联手干大事
    Linux下Shell日期的格式,你知道几种?
    Linux下Python3.6的安装及避坑指南
    多线程中使用CompletableFuture
    ElasticSearch7.6.2中语法使用(更新中)
    ElasticSearch7.6.2使用_update_by_query语法
    ElasticSearch7.6.2使用_delete_by_query产生版本冲突问题
    filebeat7.6.2进程运行一段时间后自动退出问题解决
    把本地项目提交到gitLab
  • 原文地址:https://www.cnblogs.com/gide/p/4439999.html
Copyright © 2011-2022 走看看