如何在JavaScript中模擬按鍵事件?
我們使用事件處理程式在JavaScript中模擬按鍵事件。JavaScript中的事件,顧名思義,是指瀏覽器或使用者採取的操作。事件處理程式是JavaScript提供的一個實用程式,它允許程式設計師對這些事件做出正確的響應。
我們將使用jQuery庫在JavaScript中模擬按鍵事件。它是一個JavaScript庫,用於遍歷HTML文件以及操作它們,建立動畫等等。其中一個我們將使用的功能是事件處理。
事件
事件是在瀏覽器或系統中發生的更改。滑鼠點選被評估為系統中的更改,因此它被記為事件。其他事件的示例包括鍵盤上按下的鍵、載入的表單以及網頁完成載入。
主要有四種類型的事件,每種事件都與不同的事件輸入源有關。這些是滑鼠事件、鍵盤事件、文件事件和表單事件。
示例
- 滑鼠事件 - click, dblclick
- 鍵盤事件 - keypress, keyup
- 文件事件 - load, resize
- 表單事件 – submit, change
現在,透過將事件處理程式附加到HTML文件的相關元素,將此事件資訊傳遞給程式設計師。
語法
我們在jQuery中使用選擇器將事件處理程式附加到不同的HTML標籤、類和ID。選擇器是jQuery框架的一部分,它可以輕鬆地導航和操作HTML文件。
$(selector).keypress(function)
其中selector可以是類、ID或標籤。此行將按鍵處理程式附加到提供選擇器。
使用選擇器引用文件中各種HTML元素的這種模式是jQuery的常見功能。我們將使用它來引用指令碼的其他部分,但由於jQuery增加了抽象,因此與JavaScript的方式不同。
示例1
在這裡,我們將處理HTML文件主體上的按鍵事件。每當在瀏覽器視窗中按下鍵時,它都會在螢幕上記錄。
在附加事件處理程式之前,我們首先檢查DOM(文件物件模型)是否已準備好。這是藉助jQuery(document).ready()函式完成的。當達到就緒狀態時,作為ready()內部引數提供的程式碼塊就會執行。在這裡,我們將提供一個函式,該函式將事件處理程式附加到HTML文件的主體。
讓我們看看相同的程式碼。
<html> <head> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> </script> <script> // checks for the readiness of the DOM jQuery(document).ready(function($) { // attaches a keypress handler to body $("body").keypress(function() { document.getElementById("result").innerHTML = "Key Pressed"; }); }); </script> </head> <body> <div id = "result"> press any key </div> </body> </html>
在上面的程式碼中,我們使用jQuery的選擇器模式引用HTML文件的主體,並向其附加一個按鍵處理程式。
我們甚至可以捕獲已按下鍵盤上的鍵,並在螢幕上記錄。
在螢幕上記錄按鍵
示例2
在下面的程式碼中,我們首先將按鍵處理程式附加到HTML文件的body元素。然後,我們在jQuery中建立一個函式,該函式觸發按鍵事件並接受預設字元作為引數。在這種情況下,字元為“Z”。
然後,我們將使用setTimeout方法在每3秒後呼叫此函式,該函式在螢幕上記錄“Z”鍵。
這裡需要注意的一件有趣的事情是,按鍵處理程式附加到文件的主體,因此使用者端的任何按鍵都將記錄在螢幕上。
<html> <head> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> </script> <script> jQuery(document).ready(function($) { $("body").keypress(function(e) { // logs the pressed key on the screen document.getElementById("result").innerHTML = String.fromCharCode( e.which ) + " key has been pressed."; }); }); // function to trigger the keypress jQuery.fn.simulateKeyPress = function(character) { jQuery(this).trigger({ type: 'keypress', which: character.charCodeAt(0) }); }; // calls the simulateKeypress function every 3 second setTimeout(function() { $("body").simulateKeyPress('Z'); }, 3000); </script> </head> <body> <div id = "result">Wait for the simulation to begin !</div> <p> Press any key </p> </body> </html>
結論
JavaScript中的事件使我們的程式設計師生活更輕鬆。它們為我們提供了處理系統中發生的各種事件的正確工具。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP