欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js event 博客分类: javascript IEjQueryCC++C#

程序员文章站 2024-02-22 08:25:10
...
//IE window.event
//IE event.srcElement
//IE event.cancelBubble=true; 

 

 
 if(!event)event=window.event;
 var target=(event.target)? event.target:event.srcElement; 

 if(window.event){
             event.cancelBubble=true;
    }else{
                               event.stopPropagation()  
   }
 

 

如果想改变元素的默认语义(例如<a>上面的onclick),应该将处理程序的返回值设置为false

 

 

1 事件模型0

 

xx.onclick=fun;
一个事件只能绑定一个处理,完全不方便嘛

2 事件模型2

  element.addEventListener('click',function(event) {\\xxx },true);

支持绑定监听和捕获阶段

3 事件模型of IE

 

attachEvent(eventName,handler)

event任然从window里面拿
不支持捕获
onclick不是click

 4 jQuery 封装的事件模型

a 提供建立事件处理程序的统一方法
b 允许在每一个元素上位每个事件类型建立多个监听
c 采用标准的事件类型 如click而不是IE的onclick
d 使Event实例可以作为处理程序的参数
e 对Event实例的常用属性进行规范化
f 为取消事件和阻塞默认操作提供统一方法
PS:除了不支持捕获阶段以外,和2级模型极为相似。

 

bind(eventType,data,listener)

--eventType(可以添加命名空间为后缀 click.nsXXX)
--data 调用者附加到event上的数据
--listener

返回 包装集
 
例如这样:
$('img').bind('click',function(event){//xx});

 

事件命名空间详解

$('#vstar').bind('click.editMode',function(event) {
            say('Whee once!');
          })

随后,比如切换到viewMode,那么可以这样

$('*').unbind('click.editMode');

 

同时,jQuery支持特定事件的快速绑定方法。
例如 $().click(fn)
这是增加一个事件监听
 
当然啦,我们有时希望删除事件处理程序

那么就
 unbind(eventType,listener)
unbind(event)