溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript中的事件監(jiān)聽是什么

發(fā)布時間:2021-07-14 10:34:35 來源:億速云 閱讀:414 作者:chen 欄目:web開發(fā)

這篇文章主要介紹“JavaScript中的事件監(jiān)聽是什么”,在日常操作中,相信很多人在JavaScript中的事件監(jiān)聽是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JavaScript中的事件監(jiān)聽是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

一、addEventListener()方法

addEventListener()方法將事件處理程序附加到指定的元素。

可以重寫隨機顏色,如下所示:

例:

<!DOCTYPE html> <html>     <title>項目(nhooo.com)</title>      <body style="background-color: aqua;">          <p>單擊下面的按鈕以更改文檔的背景顏色:</p>          <button>點我改變背景顏色</button>          <script>             let btn = document.querySelector("button");             btn.addEventListener("click", bgChange);              function bgChange() {                 let color = "rgb(" + random(255) + "," + random(255) + "," + random(255) + ")";                 document.body.style.backgroundColor = color;             }              function random(number) {                 return Math.floor(Math.random() * (number + 1));             } </script>      </body> </html>

JavaScript中的事件監(jiān)聽是什么

將addEventListener()方法附加到按鈕上。addEventListener()接受兩個必填參數(shù)-要監(jiān)聽的事件和監(jiān)聽器回調(diào)函數(shù)。

1. 語法

element.addEventListener(event, listener, useCapture)

代碼解析:

第一個參數(shù)是事件的類型(例如“ click”或“ mousemove”)。

第二個參數(shù)是事件發(fā)生時我們要調(diào)用的監(jiān)聽函數(shù)。

第三個參數(shù)是一個布爾值,指定是使用事件捕獲。此參數(shù)是可選的。

注意:

不要為事件使用“ on”前綴。使用“ click”代替“ onclick”。

2. 將事件監(jiān)聽添加到元素

將所有代碼放入addEventListener()方法中的匿名函數(shù)中是非常合適的,如下所示:

<script> let para = document.querySelector("#para");  para.addEventListener("click", function() { this.innerHTML = "Hello world"; }); </script>

還可以引用外部“命名”函數(shù):

示例

<script> let para = document.querySelector("#para"); para.addEventListener("click", changeText);  function changeText() { para.innerHTML = "Hello world"; } </script>

JavaScript中的事件監(jiān)聽是什么

3. 將多個事件監(jiān)聽添加到同一元素

事件監(jiān)聽似乎與事件處理程序?qū)傩苑浅O嗨疲撬鼈冇幸恍﹥?yōu)點。我們可以在同一元素上設(shè)置多個事件監(jiān)聽,如以下示例所示:

<script> document.querySelector("button").addEventListener("click", myFunc); document.querySelector("button").addEventListener("click", anotherFunc);  function myFunc() { document.body.style.backgroundColor = "coral"; //改變背景顏色 }  function anotherFunc() { document.body.style.fontSize = "2rem"; //改變字體大小 } </script>

JavaScript中的事件監(jiān)聽是什么

可以向元素添加不同類型的事件:

示例

JavaScript中的事件監(jiān)聽是什么

JavaScript中的事件監(jiān)聽是什么

4. 傳遞參數(shù)

傳遞參數(shù)值時,請使用匿名函數(shù),該函數(shù)使用參數(shù)調(diào)用指定的函數(shù):

var btn = document.querySelector("button");    btn.addEventListener("click", function() {    myFunc(x, y); });

JavaScript中的事件監(jiān)聽是什么

5. 將事件監(jiān)聽添加到Window對象

此外,可以addEventListener()在文檔和窗口對象上使用。

本示例使用以下addEventListener()方法將click事件附加到文檔:

document.addEventListener("click", function() { alert("Hello World!!!"); });

使用該addEventListener()方法將調(diào)整大小(resize)事件附加到窗口:

window.addEventListener("resize", function() { box.innerHTML = Math.random(); });

JavaScript中的事件監(jiān)聽是什么

當前,事件監(jiān)聽是處理JavaScript中事件的最常見和首選方式。

二、removeEventListener()方法

可以使用該removeEventListener()方法從元素中刪除一個或所有事件。

語法:

var box = document.getElementById("para");   // Attach an event handler to a P element with id="para"  box.addEventListener("mousemove", myFunc);   // Remove the event handler from a P element with id="para"  box.removeEventListener("mousemove", myFunc);

案例:

<script>       // 使用以下代碼將事件處理程序附加到 id="para"       var box = document.getElementById("para");       box.addEventListener("mousemove", myFunc);        function myFunc() {         box.innerHTML = Math.random();       }        function removeHandler() {         //從id="para"的P元素中刪除事件處理程序         box.removeEventListener("mousemove", myFunc);       } </script>

JavaScript中的事件監(jiān)聽是什么

第一個參數(shù)是事件的類型(例如“ click”或“ mousemove”)。

第二個參數(shù)是事件發(fā)生時我們要調(diào)用的函數(shù)。

到此,關(guān)于“JavaScript中的事件監(jiān)聽是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI