JS事件

js事件编程

  • 事件处理程序
  • 常用事件
  • 绑定事件方式
  • 事件冒泡
  • 默认行为
  • 事件对象示例

1. 常用事件

onLoad :页面加载完毕后 一般用于body元素
onUnload :页面关闭后 一般用于body元素
onBlur :失去焦点
onFocus :获得焦点
onClick :点击
onMouseOver :当鼠标经过时
onMouseOut :当鼠标离开时
onMouseDown :当鼠标按下时
onMouseUp :当鼠标抬起时
onMouseMove :当鼠标移动时
onChange :当内容改变时
onSelect :当内容被选中时
onkeypress :当键盘点击时
onkeydown :当键盘按下时
onkeyup :当键盘抬起时
触发顺序:onkeydown、onkeypress、onkeyup
Onkeypress事件无法捕获功能键 代码见:demo08.html
onSubmit :当表单提交时
onReset :当表单重置时

2.绑定事件方式

1)行内绑定
语法:
<元素事件=”事件处理程序”>



2)动态绑定
结构+样式+行为分离的页面
语法:
对象.事件=事件处理程序


    
        
    
    
    
    

3)事件监听
我们能不能为一个dom对象的同一个事件指定多个事件处理程序
通过下面的代码,我们发现 一个对象的同一个事件指定多个事件处理程序,那么,后面指定的程序会覆盖前面的。



 
   New Document 
  
  
  
  
 
 
    
    
test

如果我们想为一个对象的某个事件指定多个事件处理,可以考虑使用事件监听。
事件监听语法:
IE:
attachEvent(type,callback)

type:事件名 如:onclick、onsubmit、onchange等
callback:事件处理程序

基于W3C模型:
addEventListener(type,callback,capture)
Type:事件名 ,没有“on”前缀 如:click、submit、change
Callback:事件处理程序
Capture:事件模型 (可选参数) (冒泡模型、捕捉模型) true:捕捉模型
false:冒泡模型 (默认值)

代码示例:

IE:


 
   New Document 
  
  
  
  
 
 
    
    
test
W3c:


 
   New Document 
  
  
  
  
 
 
    
    
test
``` 总结: IE和W3C事件监听的不同: 监听方法不同:IEattachEvent 、W3C addEventListener 监听参数不同:IE 没有模型参数、W3C 有模型参数 触发顺序:IE 8及以下的浏览器触发时是先绑定、后触发 W3C浏览器是先绑定、先触发 事件名称不同:IE 事件需要”on”前缀,W3C不需要’on’前缀 解决事件监听的兼容性问题: ``` function addEvent(obj,type,callback){ if(window.attachEvent){ obj.attachEvent('on'+type,callback); }else{ obj.addEventListener(type,callback); } } ``` ### 3.事件模型 > 事件模型分为两种: **1)冒泡模型:事件冒泡是指事件响应时会上水冒一样上升至最顶级元素** **2)捕捉模型:按照添加顺序** 冒泡模型代码示例: ``` New Document
``` > 大多数情况下,程序需要对事件冒泡进行取消 如何取消事件冒泡: IE: window.event.cancelBubble=true; W3C: function(event){ event.stopPropagation(); } > **解决兼容性问题:** function stopBubble(ent){ if(window.event){ window.event.cancelBubble=true; }else{ ent.stopPropagation(); } } ### 4、默认行为 >有些html元素,有自己的行为,如,提交按钮、超链接 有些时候,我们需要对默认行为进行取消,如表单按钮点击时,用户资料添写不完整,我们这时需要将按钮的默认行为取消。 ``` New Document

``` > **解决兼容性问题:** function prevent(ent){ if(window.event){ window.event.returnValue=false; }else{ ent.preventDefault(); } } ### 5.事件对象 > **1)什么是事件对象** 事件对象就是事件发生时系统自动产生的对象,这个对象包含了这个事件发生时所有的信息 如:鼠标移动,那么,鼠标所在的横、纵坐标就保存到了这个事件对象中 > **2)如何获得事件对象** IE9及以上版本、W3C: function(event){} IE8及以下: window.event > **3)键盘事件小例子:** ``` New Document
test
```

你可能感兴趣的:(JS事件)