通用的事件模型:
1.是在HTML页面绑定
<button id="button" onclick="function();">按钮</button>
2.在javascript脚本文件中绑定事件处理
document.getElementById(‘button‘).onclick = function;
IE中的事件模型
1。使用script for绑定(这个绑定很少用)
<script for="btn1" event="onclick" type="text/javascript">
alert("您单击了我");
</script>、
2.使用attachEvent方法绑定
document.getElementById(‘btn1‘).attachEvent("onclick", test);
意思:为id为btn1的按钮绑定事件,单击按钮会触发test函数;
DOM的事件模型
使用addEventListener("事件",调用函数,事件传播的哪个阶段(true/false))
当为true的时候表示监听捕获阶段,false表示监听冒泡阶段
document.getElementById(‘btn1‘).addEventListener("click", test, true);
意思:为id为btn1的按钮绑定事件,单击按钮会触发test函数,并且只监听其捕获阶段;
访问事件对象:
IE的事件对象是一个隐式的全局对象event 当时间发生的时候就会创建这个对象,次对象有很多属性
DOM事件模型与IE事件模型不同,其自动创建一个event对象,并隐式的将该对象作为事件处理函数的第一个参数传入
另外IE中还有事件冒泡:
event.cancelBubble=true;就是取消IE的事件冒泡默认是false
IE的重定向事件(事件转发);
document.getElementById(‘btn1‘).fireEvent("onCliclk", event)
将事件传给ID为btn1的按钮。
捕获事件
target.setCapture();设置target对象捕获改时间
target.releaseCapture(); 设置target对象释放捕获。
DOM的事件传播
DOM模型事件先后沿着两个方向传播,第一阶段是事件捕获阶段,从顶层对象传播到事件发生目标对象。第二阶段是冒泡阶段,从事件发生的目标对象向上传播到顶层对象;
event.stopPropagation()阻值event事件传播
取消默认行为
event.preventDefault();