Events
您可以編寫事件觸發(fā)執(zhí)行的Javascript代碼,例如用戶單擊HTML元素,移動(dòng)鼠標(biāo)或提交表單時(shí)。
當(dāng)目標(biāo)元素發(fā)生事件時(shí),執(zhí)行處理函數(shù)。
常見的HTML事件包括:
提示: 相應(yīng)的事件可以添加到HTML元素作為屬性。
例如:
<p onclick="someFunc()">一些文字</p>
處理事件
當(dāng)用戶單擊指定的按鈕時(shí),我們將顯示一個(gè)提醒彈出窗口:
<button onclick="show()">點(diǎn)擊我</button> <script> function show() { alert("你好,我在這里!"); } </script>
可以給元素綁定事件監(jiān)聽:
var x = document.getElementById("demo"); x.onclick = function () { document.body.innerHTML = Date(); }
<button="()"> 點(diǎn)擊 </button>
Event
當(dāng)用戶進(jìn)入或離開頁面時(shí),觸發(fā) onload 和 onunload 事件。在頁面加載后執(zhí)行操作時(shí),這些操作非常有用。
<body onload="doSomething()">
類似地,window.onload 事件可以用于在整個(gè)頁面加載之后運(yùn)行代碼。
window.onload = function() { //這里寫代碼 }
onchange 事件主要用于文本框。當(dāng)文本框內(nèi)的文本發(fā)生變化并且焦點(diǎn)從元素中丟失時(shí),調(diào)用事件處理程序。
例如:
<input type="text" id="name" onchange="change()"> <script> function change() { var x = document.getElementById("name"); x.value= x.value.toUpperCase(); } </script>
以上程序在用戶名發(fā)生改變時(shí),將其值轉(zhuǎn)成大寫.
<body ="">
</body>
事件監(jiān)聽
addEventListener() 方法將事件處理程序附加到元素,而不會(huì)覆蓋現(xiàn)有的事件處理程序。您可以向一個(gè)元素添加許多事件處理程序。
您還可以將許多同一類型的事件處理程序添加到一個(gè)元素,即兩個(gè)“點(diǎn)擊”事件。
element.addEventListener(event, function [, useCapture]);
第一個(gè)參數(shù)是事件的類型(如“點(diǎn)擊”或“鼠標(biāo)按下”)。
第二個(gè)參數(shù)是事件發(fā)生時(shí)要調(diào)用的函數(shù)。
第三個(gè)參數(shù)是一個(gè)布爾值,指定是否使用事件冒泡或事件捕獲。此參數(shù)是可選的,將在下一課中進(jìn)行說明。
提示:在添加事件類型的時(shí)候沒有on 如:click 而不是 onclick
element.addEventListener("click", myFunction); element.addEventListener("mouseover", myFunction); function myFunction() { alert("Hello W3Cschool"); }
這會(huì)向元素添加兩個(gè)事件偵聽器。
我們可以刪除其中一個(gè)監(jiān)聽器:
element.removeEventListener("mouseover", myFunction);
我們創(chuàng)建一個(gè)事件處理程序,在執(zhí)行后會(huì)自動(dòng)刪除:
<button id="demo">開始</button> <script> var btn = document.getElementById("demo"); btn.addEventListener("click", myFunction); function myFunction() { alert(Math.random()); btn.removeEventListener("click", myFunction); } </script>
單擊按鈕后,將顯示帶有隨機(jī)數(shù)的警報(bào),并刪除事件偵聽器。
提示: Internet Explorer版本8及更低版本不支持 addEventListener() 和 removeEventListener() 方法。但是,您可以使用 document.attachEvent() 方法在Internet Explorer中附加事件處理程序。