第1關:注冊事件處理程序
任務描述
本關任務:為指定的事件注冊事件處理程序。
相關知識
頁面上的每一個元素,會發生幾種不同的事件,比如表單元素,可能會發生提交事件,也可能發生重置事件,我們需要為每一個事件綁定一個事件處理程序,也叫為事件注冊事件處理程序。
下面是三種注冊事件處理程序的方法。
為對象設置一個函數
頁面上的元素對應一個對象,元素的每一個事件對應對象的一個屬性,比如:
var myForm = document.getElementById("myForm");
myForm對應頁面中id值為myForm的表單,myForm.onsubmit對應表單提交事件,myForm.onreset對應表單重置事件。通過為這些屬性設置一個函數類型的值,實現事件處理程序的注冊:
//為表單提交事件注冊處理程序
myForm.onsubmit = function() {
console.log("表單提交的事件處理程序");
}
//為表單重置事件注冊處理程序
myForm.onreset = function() {
console.log("表單重置的事件處理程序");
}
設置HTML標簽屬性的值為事件處理程序
比如,設置form標簽的屬性的值為事件處理程序:
function submitForm() {
console.log("表單提交的事件處理程序");
}
這樣提交表單時,就會觸發()函數。
調用()函數
頁面元素對應的JS對象,通過調用()函數也可以注冊事件處理程序,函數的第一個參數是事件的類型,第二個參數是事件處理程序:
var myForm = document.getElementById("myForm");
myForm.addEventListener("submit",function() {
console.log("表單提交中");
});
submit表示這是一個表單提交事件,后面的匿名函數即表單提交的事件處理程序。
編程要求
本關的編程任務是補全右側代碼片段中Begin至End中間的代碼,具體要求如下:
通過()獲取id為button2的按鈕,賦值給變量button2,然后使用button2.onclick()方法為該按鈕綁定事件處理程序();
通過()獲取id為button3的按鈕,賦值給變量button3,然后使用button3.()方法為該按鈕綁定click事件的事件處理程序()。
測試說明
測試過程:
平臺將讀取用戶補全后的.html;
執行其中的代碼,檢測click事件是否注冊了指定的處理程序;
成功輸出button2按鈕設置事件處理成功,button3按鈕設置事件處理成功,否則輸出button2按鈕設置事件處理失敗,button3按鈕設置事件處理失敗。
以下是測試樣例:
測試輸入:
無測試輸入
預期輸出:
button2按鈕設置事件處理成功,button3按鈕設置事件處理成功
海到無邊天作岸,山登絕頂我為峰。 ——林則徐
如果你覺得這一關的內容對你有幫助,請你在下面點贊。
參考代碼:
<html lang="zh">
Title
<script>
function listenButton1() {
console.log("監聽button1");
}
function listenButton2() {
console.log("監聽button2");
}
function listenButton3() {
console.log("監聽button3");
}
//請在此處編寫代碼
/********** Begin **********/
var button2 =document.getElementById("button2");
button2.onclick=listenButton2;
var button3 =document.getElementById("button3");
button3.addEventListener("click",listenButton3);
/********** End **********/
</script>