Javascript之事件處理

1.HTML事件處理

  直接添加到HTML結構中

缺點:修改一處同時需要修改兩處   函數的名稱如果被修改,html中的onclick事件也要修改。

如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>事件處理</title>
</head>
<body>
<div id="div">
<button id="btn" οnclick="demo()">按鈕</button>
</div>
<script>
    function demo () {
     alert("Hello html事件處理");
    }
</script>
</body>
</html>


2.DOM 0級事件處理

把一個函數值賦給一個時間處理程序屬性

優點:不需要修改HTML中的button 只需修改一處

缺點:如果有多個事件 會被覆蓋掉  只會顯示最後一個事件

如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>事件處理</title>
</head>
<body>
<div id="div">
<button id="btn">按鈕</button>
</div>
<script>
    var btn1=document.getElementById("btn");
    btn1.οnclick=function  () {
     alert("dom0級事件處理程序1");
    }
     btn1.οnclick=function  () {
     alert("dom0級事件處理程序2");  //會覆蓋掉dom 事件處理程序1
    }

   // btn1.οnclick=null;  //清楚當前事件
</script>
</body>
</html>


3.DOM 2級事件處理

優點:不會被覆蓋掉 使用起來很方便  符合用戶的使用心得

addEventListener(“事件名”,“事件處理函數”,“布爾值”);

true:事件捕獲

false:事件冒泡

remove EventListener(); //移除事件

如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>事件處理</title>
</head>
<body>
<div id="div">
<button id="btn">按鈕</button>
</div>
<script>
        var btn1=document.getElementById("btn")
btn1.addEventListener("click",demo1);
btn1.addEventListener("click",demo2);
btn1.addEventListener("click",demo3);
function demo1() {
alert("DOM 2級事件處理程序1");
}
function demo2() {
alert("DOM 2級事件處理程序2");    
}
function demo3() {
alert("DOM 2級事件處理程序3");
}


btn1.removeEventListener("click",demo2);
//移除demo2;
   
    
</script>
</body>
</html>


4.IE事件處理程序(使用方法和參數和addEventListener一樣)

attachEvent

detachEvent(移除事件)

如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>事件處理</title>
</head>
<body>
<div id="div">
<button id="btn">按鈕</button>
</div>
<script>
        var btn1=document.getElementById("btn")
if (btn1.addEventListener) {
btn1.addEventListener("click",demo);
}else if (btn1.attachEvent){
btn1.attachEvent("onclick","demo");
}else{
btn1.οnclick=demo();  
 //以前有些瀏覽器只能支持DOM 0級事件 所以這裏添加一個DOM 0 級事件
}


function demo () {
alert("Hello");
}
</script>
</body>
</html>


















發佈了23 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章