好好学一遍JavaScript 笔记(九)——事件处理函数/监听函数/事件对象

事件处理器是与特定的文本和特定的事件相联系的JavaScript脚本代码,当该文本发生 改变或者事件被触发时,浏览器执行该代码并进行相应的处理操做,而响应某个事件而进行的处理过程称为事件处理。HTML文档事件包括用户载入目标页面直到 该页面被关闭期间浏览器的动做及该页面对用户操做的响应,主要分为浏览器事件和HTML元素事件两大类。在了解这两类事件以前,先来了解事件捆绑的概念。 HTML文档将元素的经常使用事件(如 件的事件处理器就被执行,并将处理结果返回给浏览器。事件捆绑致使特定的代码放置在其所处对象的事件处理器中。若是在javaScript中分配事件处理 函数、则须要首先得到要处理的对象的引用、而后将函数赋值给对应的事件处理函数属性、示例:javascript

  
  
           
  
  
  1. <div id="divId">点击</div>    
  2.     <!-- 注意JS代码要放在div元素以后、若是先执行JS在执行div元素的话、   
  3.          document是获取不到对象的、要时刻记住、解释执行的的特性   
  4.                         另一点就是事件处理函数名称必须小写才能正确响应事件。 -->   
  5.     <script type="text/javascript">   
  6.             var oDiv = document.getElementById("divId");   
  7.             oDiv.onclick = function (){   
  8.                 alert("javaScript事件处理函数!");    
  9.             };     
  10.     </script>   
  11.     <div onClick="alert('HTML中分配事件处理函数!');">点击</div>  

事件对象
建立包含关于刚刚发生的事件的信息的事件对象、包含的信息以下:
        一、引发事件的对象;
        二、事件发生时鼠标的信息;
        三、事件发生时键盘的信息。
java

事件对象只在发生事件时才被建立、且只有事件处理函数才能访问。全部事件处理函数执行完毕后、事件对象就被销毁。浏览器

定位:
        在IE中、事件对象是Window对象的一个属性event。事件处理函数必须这样访问事件对象:
ide

  
  
           
  
  
  1. oDiv.onclick = function () {   
  2.            var oEvent = window.event;   
  3.        }   

在DOM兼容的浏览器(如Mozilla、Safari和Opera)中访问事件对象、要这么作:函数

  
  
           
  
  
  1. oDiv.onlcik =function (){   
  2.             var oEvent = arguments[0];   
  3.         }   

也能够直接命名参数、访问就更方便:spa

  
  
           
  
  
  1. oDiv.onclick = function (oEvent) {}   

 

属性方法:.net

下面是IE中的属性以及方法对象


DOM事件对象属性核心方法seo

类似性:
一、获取事件类型
这样可在任何一种浏览器中获取事件的类型:
事件

  
  
           
  
  
  1. <div id="divId">   
  2.     ---------------------------------------------------------------------------------------------------------------------------------   
  3.     ---------------------------------------------------------------------------------------------------------------------------------   
  4.     ---------------------------------------------------------------------------------------------------------------------------------   
  5.     ---------------------------------------------------------------------------------------------------------------------------------   
  6.     </div>   
  7.     <div>   
  8.         <input type="text" id="testId" onkeydown="keyFunction();" onkeyup="keyFunction();"/>   
  9.     </div>     
  10.     <script type="text/javascript">   
  11.         var oDiv = document.getElementById("divId");    
  12.         function eFunction(oEvent){   
  13.             /**oEvent.type在IE会报错、说type为空或不是对象、火狐木有问题**/   
  14.             if(oEvent.type == "click"){   
  15.                 alert("click");   
  16.             }else if(oEvent.type == "mouseover"){   
  17.                 alert("mouseover");   
  18.             }   
  19.         }    
  20.         function ieFunction(){     
  21.             /**IE须要这样获取event对象**/   
  22.             var oEvent = window.event;   
  23.             if(oEvent.type == "click"){   
  24.                 alert("click");   
  25.             }else if(oEvent.type == "mouseover"){   
  26.                 alert("mouseover");    
  27.             }   
  28.                
  29.                
  30.             /**  
  31.              * 获取客户端坐标  
  32.              */   
  33.              alert("获取客户端坐标X: "+oEvent.clientX+"   Y: "+oEvent.clientY);   
  34.                
  35.                
  36.             /**  
  37.              * 获取屏幕坐标   
  38.              */   
  39.              alert("获取屏幕坐标X: "+oEvent.screenX+"   Y: "+oEvent.screenY);   
  40.         }   
  41.         //oDiv.onclick = eFunction;   
  42.         //oDiv.onmouseover = eFunction;    
  43.         oDiv.onclick = ieFunction;     
  44.         oDiv.onmouseover = ieFunction;     
  45.            
  46.            
  47.         /**获取按键的数值代码**/   
  48.         function keyFunction(){    
  49.             /**  
  50.              * onkeyup 是在用户放开任何先前按下的键盘键时发生。  
  51.              * onkeydown 是在用户按下任何键盘键时发生。    
  52.              */    
  53.             var oEvent = window.event;     
  54.             var keyValue = oEvent.keyCode;   
  55.             //alert(keyValue);     
  56.                
  57.             /**检测shift、alt键是否被按下返回的是boolean值**/   
  58.             var bshift = oEvent.shiftKey;     
  59.             var balt = oEvent.altKey;    
  60.             alert("shift: "+bshift+" alt:"+balt);         
  61.         }   
  62.     </script>  
相关文章
相关标签/搜索