HTML事件處理程序(簡單,但十分不建議使用)
我們可以直接在HTMl代碼中添加事件處理程序:
<button id="btn" value="按鈕" onclick="showmsg();">
<script>
function showmsg(){
alert("HTML事件處理");
}
</script>
DOM0級事件處理程序
為指定對象添加處理函數:
<button id="btn" value="按鈕" onclick="showmsg();">
<script>
var btn= document.getElementById("btn");
btn.onclick=function(){
alert("DOM0級添加事件處理");
}
btn.onclick=null;//如果想要刪除btn2的點擊事件,將其置為null即可
從上面的代碼中,我們能看出,相對于HTML事件處理程序,DOM0級事件,html代碼和js代碼的耦合性已經大大降低。但是,聰明的程序員還是不太滿足,期望尋找更簡便的處理方式。
DOM2級事件處理程序
DOM2也是對特定的對象添加事件處理程序,但是主要涉及到兩個方法,用于處理指定和刪除事件處理程序的操作:addEventListener()和 removeEventListener()。
<button id="btn" value="按鈕" onclick="showmsg();">
<script>
var btn=document.getElementById("btn");
btn.addEventListener("click",showmsg,false);//這里我們把最后一個值置為false,即不在捕獲階段處理,一般來說冒泡處理在各瀏覽器中兼容性較好
function showmsg(){
alert("DOM2級添加事件處理程序");
}
btn.removeEventListener("click",showmsg,false);//如果想要把這個事件刪除,只需要傳入同樣的參數即可
</script>
這里我們可以看到,在添加刪除事件處理的時候,最后一種方法更直接,也最簡便。需要注意的是,在刪除事件處理的時候,傳入的參數一定要跟之前的參數一致,否則刪除會失效!