js event

//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)

你可能感兴趣的:(jquery,C++,c,IE,C#)