javascript dom 节点对象的原生事件和自定义事件
学习之前,让我们来给它下几个傻瓜化的定义
事件的句柄:浏览器或者程序员为了方便操作一个函数而把这个函数赋值给一个变量,我们称这个变量叫做事件句柄.
原生事件的句柄 :dom 节点对象固有的事件,比如:onclick,onmouseover,onkeyup.......如此种种.
自定义事件句柄 :和原生事件类同,区别在于事件句柄可以自己取名(自定义嘛),比如:test,mytest........如你所愿意.
原生事件:原生事件句柄指向的操作函数,原生事件由浏览器的监听器根据dom节点对象的壮态是否改变来判断是否触发,也可以根据需要手动触发.
自定义事件:自定义事件句柄指向的操作函数,此事件不在浏览器的监听范围内,换句话说,浏览器的监听器无视自定义事件.所以它的触发完全靠程序员根据需要手动触发.
不明白?看例子......
[html]
<button id="fuckhh">fuckhh</button>
[/html]
[javascript]
obj = document.getElementById('fuckhh');
//在这里 onclick就是所谓的原生事件句柄,这个匿名函数就是原生事件
obj.onclick = function(){
console.log('click');
}
//在这里 mytest就是所谓的定义事件句柄,这个匿名函数就是自定义事件
obj.mytest = function(){
console.log('test hh,do you hate it?');
}
obj.onclick();//手动触发原生事件,你点击一下按钮也会触发(所谓浏览器监听触发)
obj.mytest ();//手动触发自定义事件,只此一种.
[/javascript]
其实一些框架的自定义事件就是基于此原理进行包装,然后通过手动或者联动(触发原生事件的同时手动触发自定义事件)来触发,不要被它的表像所迷惑.