html事件处理程序
<div> <button id="btn1" onclick="demo()">按钮</button> </div> <script> function demo(){ alert("html事件处理程序"); } </script>
直接再html中书写 onclick="函数";缺点:修改一处,需要改2处。
dom0级事件处理程序
<div> <button id="btn1">按钮</button> </div> <script> var btn = document.getElementById("btn1") btn.onclick = function(){alert("html0级处理程序")}; </script>
js中先获取元素,再直接写 obj.onclick = "函数"; 清除方式: btn.onclick = "null"; 缺点:后面的事件绑定会覆盖之前的绑定。
dom2级事件处理程序
.addEventListener ( "事件名不带on", “事件处理函数”, “布尔值” )
ture:事件捕获
fales:事件冒泡 默认
"事件名"没有on
<script> var btn = document.getElementById("btn1") btn.addEventListener( click , demo1 ); btn.addEventListener( click , demo2 ); </script>
可以绑定多个事件, 清除:.removeEventListener()
IE8以下事件处理程序
.attachEvent( "事件名带on" , "事件处理函数" )
.detachEvent()
兼容写法
<div>
<button id="btn1">按钮</button>
</div>
<script>
var btn1 = document.getElementById("btn1");
if(btn1.addEventListener){
btn1.addEventListener("click",demo);
}else if (btn1.attachEvent){
btn1.attachEvent("onclick",demo);
}else{
btn1.onclick = demo();
}
function demo(){
alert("事件兼容代码");
}
</script>