zoukankan      html  css  js  c++  java
  • 基本event封装:阻止冒泡、默认事件等

    <!DOCTYPE html>
    <html>
    <head>
       <meta charset="UTF-8">
    </head>             
    <body>
      <div id="box">
       <input type="button" value="按钮3" id="btn3">
       <a href="http://www.sogou.com/sie?hdq=AQxRG-7004&query=addEventListener%20of%20undefined&p=99350103&oq=&ri=-2" id="go">跳转</a>
      </div>
       <script type="text/javascript">
       var btn3 = document.getElementById('btn3');
       var box = document.getElementById('box');
       var id = document.getElementById('id');
       function showMes(event) {
          event = event || window.event;  //在IE8之前要用的是window.event;
    	  var ele = event.target || event.srcElement; //在IE8之前用的不是target而是srcElement
          alert(ele.nodeName);
    	  event.stopPropagation();
       }
          function showM() {
          alert("RGE");
       }
       function stopGo(event) {
         event.stopPropagation();
    	 event.preventDefault();
       }
    var eventUtil = {
      //给元素添加事件
       addHandler: function(element, type, handler) {
         if(element.addEventListener) {
    	    element.addEventListener(type,handler,false);
    	 } else if(element.attachEvent) {
    	    element.attachEvent('on'+type, handler);
    	 } else {
    	    element['on'+type] = handler;
    	 }
       },
       //给元素删除事件
         removeHandler: function(element, type, handler) {
         if(element.removeEventListener) {
    	    element.removeEventListener(type,handler,false);
    	 } else if(element.detachEvent) {
    	    element.detachEvent('on'+type, handler);
    	 } else {
    	    element['on'+type] = null;
    	 }
       },
       //获得兼容浏览器的事件对象
       getEvent: function(event) {
         return event?event:window.event;
       },
       //获取事件类型
       getType: function(event) {
          return event.type;
       },
       //获取时间来自哪个元素
       getElement: function(event) {
          return event.target || event.srcElement;
       },
       //阻止取消事件的默认行为
       preventDefault:function(event) {
         if(event.preventDefault) {
    	    event.preventDefault();
    	 } else {
    	    event.returnValue = false;
    	 }
       },
       //阻止时间冒泡
       stopPropagation: function(event) {
         if(event.stopPropagation) {
    	     event.stopPropagation();
    	 } else {
    	    event.cancelBubble = true;
    	 }
       }
    }
    eventUtil.addHandler(btn3, 'click', showMes);
    eventUtil.addHandler(box, 'click', showM);
    eventUtil.addHandler(go, 'click', stopGo);
    </script>
    </body>
    </html>
    

      把每一个事件封装在对象里面,把每一个功能封装在方法里面

  • 相关阅读:
    数据库的优化(非连接查询和连接查询的巧用)
    sql中为表添加一个含有括号的字段
    如何在有int型主键遍历表中的某一列数据
    三层架构的基本例子
    委托和事件
    sql中的常见函数
    博客园图灵杯第3届博问大赛(8.28~9.28)
    程序员部落酋长 Joel 之洞见
    安全领域多位世界级权威的智慧结晶——《黑客新型攻击防范:深入剖析犯罪软件》
    图灵“微软四大技术秘籍”近期出版!
  • 原文地址:https://www.cnblogs.com/zlz-ling/p/4121165.html
Copyright © 2011-2022 走看看