标签:注意 pen 处理程序 分类 round element 事件触发 dom false
事件类型分类:
1 添加在html结构中的事件
<div id="div1" onclick="alert(‘append click event in html‘)"> </div>
点击div1之后弹出 append click event in html;其实在html结构中添加的事件也属于dom0级事件。
2 dom0级事件处理
<div id="div1"> </div>
<script>
var dom1 = document.getElementById(‘div1‘);
dom1.onclick = function(){alert(‘ first dom0 ‘)};
dom1.onclick = function(){alert(‘ second dom0 ‘)};
</script>
点击div1之后只弹出 second dom0;说明dom0级事件后面赋值的事件会覆盖掉前面的
如果在div中在加 onclick="alert(‘append click event in html‘), 代码如下:
<div id="div1" onclick="alert(‘append click event in html‘)"> </div>
<script>
var dom1 = document.getElementById(‘div1‘);
dom1.onclick = function(){alert(‘ first dom0 ‘)};
dom1.onclick = function(){alert(‘ second dom0 ‘)};
</script>
点击div后 仍然只弹出second dom0, 说明在html中添加的点击事件处理程序也被覆盖。
实际上 dom1.onclick 等价于html结构中div标签中的onclick=""; 可以把onclick看成dom元素对象的一个属性 dom1{ id:"1", onclick:function(){ ... } }
3 dom2级事件处理
dom.addEventListener(“事件名”,“事件处理程序”,“布尔值”)
布尔值表示该事件的响应顺序,默认值为false。
<div id="div1" onclick="alert(‘append click event in html‘)"> </div>
<script>
var dom1 = document.getElementById(‘div1‘);
var handle = function () {
alert(‘dom2 event handle‘);
};
dom1.onclick = function(){alert(‘ first dom0 ‘)};
dom1.onclick = function(){alert(‘ second dom0 ‘)};
dom1.addEventListener("click", function(){alert(‘ first dom2 ‘)}, false);
dom1.addEventListener("click", handle, false);
</script>
<div> </div>
<script>
var dom1 = document.getElementById(‘div1‘);
var handle = function () {
alert(‘event handle‘);
};
dom1.addEventListener("click", function(){alert(‘ first dom2 ‘)}, false);
dom1.addEventListener("click", function(){alert(‘ second dom2 ‘)}, false);
dom1.addEventListener("click", handle, false);
dom1.removeEventListener("click", handle, false);
dom1.removeEventListener("click", function(){alert(‘ second dom2 ‘)}, false);
</script>
点击div1依次弹出 first dom2 、second dom2
注意: IE8及更早IE版本,Opera7.0及其更早版本不支持 addEventListener() 和 removeEventListener() 方法。
对于这类浏览器版本可以使用 attachEvent() 方法来添加事件,detachEvent() 方法来移除事件句柄
<div id="div1"> </div>
<script>
var dom1 = document.getElementById(‘div1‘);
dom1.addEventListener("click",function(event){console.log(event.type);console.log(event.target)})
</script>
<div><a></a></div>
<script>
dom_div.addEventListener("click",fun_div)
dom_a.addEventListener("click",fun_a)
</script>
标签:注意 pen 处理程序 分类 round element 事件触发 dom false
原文地址:http://www.cnblogs.com/peakleo/p/6090385.html