深入理解JQuery keyUp和keyDown的區(qū)別
定義和用法
完整的 key press 過程分為兩個(gè)部分:1. 按鍵被按下;2. 按鍵被松開。
當(dāng)按鈕被按下時(shí),發(fā)生 keydown 事件。
keydown() 方法觸發(fā) keydown 事件,或規(guī)定當(dāng)發(fā)生 keydown 事件時(shí)運(yùn)行的函數(shù)。
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("input").keydown(function(){
$("input").css("background-color","#FFFFCC");
});
$("input").keyup(function(){
$("input").css("background-color","#D6D6FF");
});
});
</script>
</head>
<body>
Enter your name: <input type="text" />
<p>當(dāng)發(fā)生 keydown 和 keyup 事件時(shí),輸入域會(huì)改變顏色。請(qǐng)?jiān)囍谄渲休斎雰?nèi)容。</p>
</body>
</html>
眾所周知,jquery封裝了很多事件交互方法,這里講到的問題在原生js中也是有的。
keyup是在用戶將按鍵抬起的時(shí)候才會(huì)觸發(fā)的,屬于整個(gè)按鍵過程中的最后階段,所以有其特定的用處,就是在左側(cè)輸入,右側(cè)同步顯示的過程中很有用處。典型的例子就是郵件編輯預(yù)覽的應(yīng)用。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>無標(biāo)題頁</title>
<script src="JS/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('#t1').live('keyup', function() {
$('#v1').text($(this).val());
});
$('#t2').live('keydown', function() {
$('#v2').text($(this).val());
});
$('#t3').live('keypress', function() {
$('#v3').text($(this).val());
});
});
</script>
</head>
<body>
<textarea id="t1"></textarea>
<div id="v1">
</div>
<textarea id="t2"></textarea>
<div id="v2">
</div>
<textarea id="t3"></textarea>
<div id="v3">
</div>
</body>
</html>
這里分別應(yīng)用了三種事件,其中t1能夠完整的同步到v1中,而keypress和keydown總是少最后一個(gè)字符,這樣就說明了這三種事件觸發(fā)的小小區(qū)別,keydown是在按下時(shí)觸發(fā),不能得到最后的輸入結(jié)果,keypress也是一樣。
例如:keydown綁定文本框,每次點(diǎn)擊觸發(fā)事件,在獲取文本框的值,總是打印上次操作時(shí)文本框的內(nèi)容,
這是因?yàn)閗eydown操作后,事件觸發(fā)了,但值還未顯示在文本框中,所以這類操作要用keyup 一個(gè)完整的按鍵動(dòng)作后,才可以獲取文本框的值。
keydown與keypress更適用于通過鍵盤控制頁面類功能的實(shí)現(xiàn)。
獲取鍵盤點(diǎn)擊的鍵位:
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("input").keydown(function(event){
$("div").html("Key: " + event.which);
});
});
</script>
</head>
<body>
請(qǐng)隨意鍵入一些字符:<input type="text" />
<p>當(dāng)您在上面的框中鍵入文本時(shí),下面的 div 會(huì)顯示鍵位序號(hào)。</p>
<div />
</body>
</html>
相關(guān)文章
jQuery formValidator表單驗(yàn)證插件開源了 含API幫助、源碼、示例
ajaxValidator函數(shù)在提交后發(fā)生錯(cuò)誤,停留在本頁面后,再次觸發(fā)校驗(yàn)會(huì)讓提示內(nèi)容一直處于onload狀態(tài)。2008-08-08jquery實(shí)現(xiàn)簡(jiǎn)單拖拽效果
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)簡(jiǎn)單拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07超好用的jQuery分頁插件jpaginate用法示例【附源碼下載】
這篇文章主要介紹了超好用的jQuery分頁插件jpaginate用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了jQuery分頁插件jpaginate的基本調(diào)用方式、參數(shù)屬性及配置方法,并附帶源碼供讀者下載,需要的朋友可以參考下2018-12-12jQuery學(xué)習(xí)筆記之Ajax用法實(shí)例詳解
這篇文章主要介紹了jQuery學(xué)習(xí)筆記之Ajax用法,結(jié)合實(shí)例形式較為詳細(xì)的分析總結(jié)了jQuery中ajax的相關(guān)使用技巧,包括ajax請(qǐng)求、載入、處理、傳遞等,需要的朋友可以參考下2015-12-12jquery+css3實(shí)現(xiàn)會(huì)動(dòng)的小圓圈效果
這篇文章主要介紹了jquery+css3實(shí)現(xiàn)會(huì)動(dòng)的小圓圈效果,涉及jquery基于時(shí)間函數(shù)動(dòng)態(tài)操作頁面元素css3樣式的相關(guān)技巧,需要的朋友可以參考下2016-01-01使用jquery庫實(shí)現(xiàn)電梯導(dǎo)航效果
這篇文章主要為大家詳細(xì)介紹了使用jquery庫實(shí)現(xiàn)電梯導(dǎo)航效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02