1. react js 怎樣綁定鍵盤敲擊回車事件
class Demo extends Components{
componentDidMount(){
document.addEventListener("keydown",this.handleEnterKey);
}
componentWillUmount(){
document.removeEventListener("keydown",this.handleEenterKey);
}
handleEnterKey = (e) => {
if(e.keyCode === 13){
//do somethings
}
}
render(){
}
}
擴展抄資料
React獲取表單值襲
1、監聽表單的改變事件 onChange
2、在改變的事件里獲取表單輸入的值 通過事件對象獲取值 e.target.value
3、把表單輸入的值賦值給username this.setState({})
4、點擊按鈕的時候獲取state裡面的username this.state.username
<input onChange={this.inputChange} onClick={this.getData} />
2. js事件(event)知識整理
JS事件知識整理
一、概述
javaScript中的事件是瀏覽器與用戶交互的一種方式。當用戶進行某些操作,如點擊按鈕、移動滑鼠、載入頁面等,會觸發相應的事件,並執行與之關聯的函數。事件處理是JavaScript中非常重要的部分。
二、事件類型
JavaScript中有多種事件類型,常見的事件類型包括:
1. 滑鼠事件:如click、mouseover、mousedown等。
2. 鍵盤事件:如keydown、keyup等。
3. 表單事件:如submit、focus、blur等。
4. 滾動事件:如scroll。
5. 載入事件:如load。
三、事件處理
事件處理涉及到事件監聽器和事件處理器。
1. 事件監聽器:用於監聽特定的事件,當該事件被觸發時,會執行相應的函數。可以通過addEventListener方法來添加事件監聽器。
示例代碼:
javascript
element.addEventListener {
// 事件處理代碼
});
2. 事件處理器:事件觸發時執行的函數。可以在事件監聽器中定義。
事件處理器中可以訪問到Event對象,該對象包含了與事件相關的各種屬性和方法。通過Event對象,我們可以獲取事件的詳細信息,如觸發事件的元素、事件類型、滑鼠位置等。
四、事件流
事件流描述的是事件的傳播過程。一個事件發生後,會通過三個階段:捕獲階段、目標階段和冒泡階段。添加事件監聽器時,可以選擇是否在捕獲階段或冒泡階段處理事件。
五、移除事件監聽
使用removeEventListener方法可以移除事件監聽器。如果不再需要某個事件的監聽,應該及時移除,避免不必要的資源浪費和潛在的錯誤。
示例代碼:
javascript
element.removeEventListener;
六、總結
JavaScript的事件處理是前端開發中的基礎技能之一,理解事件的類型、處理機制以及事件流的過程對於開發交互豐富的網頁應用至關重要。通過熟練掌握事件處理,可以為用戶提供更加流暢和自然的體驗。
3. js怎麼聽移動端鍵盤展開事件
方法一實現代碼:
var winHeight = $(window).height();
$(window).resize(function(){
var thisHeight=$(this).height();
if(winHeight - thisHeight >50){
//窗口發生改變(大),故此時鍵盤彈出
//當軟鍵盤彈出,在這裡面操作
}else{
//窗口發生改變(小),故此時鍵盤收起
//當軟鍵盤收起,在此處操作
}
});
方法二:監控鍵盤。
監控的方式其實篩選下來也不過兩種:
① 時鍾setInterval不停監控
② 系統級別的監控,比如鍵盤出現時候通知window一個事件,但是很遺憾現在還沒有這個事件,但是這個事件等於
input類元素獲取焦點 == 彈出虛擬鍵盤
input類元素失去焦點 == 收起虛擬鍵盤
基於系統監控這點,我們還可以監控resize事件或者scroll事件,但是經過我的測試。
setInterval表現比較好.於是,我們簡單寫一段代碼,可靠是否滿足需求:
window.alert = function (msg) {
$('body').append('<div>' + msg + '</div>')
};
function fixedWatch(el) {
if(document.activeElement.nodeName == 'INPUT'){
el.css('position', 'static');
} else {
el.css('position', 'fixed');
}
}
setInterval(function () {
fixedWatch($('#headerview header'));
}, 500);
4. js 鍵盤監聽頁面中一個div塊兒的左右滾動條,但是必須先滑鼠點擊一下div才可以監聽,怎麼解決取消點擊
不知道你使用的是什麼方式綁定的監聽事件。
假如使用 addEventListener,那就使用removeListener 來移除。
案例如下
<!DOCTYPEHTML>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">
<title>事件監聽與移除</title>
</head>
<body>
<divid="text"style="width:300px;height:300px;background-color:#ccc">
點擊按鈕注冊click事件
</div>
<inputid="btn1"type="button"value="開始監聽事件">
<inputid="btn2"type="button"value="移除監聽事件">
<script>
var$=function(obj){
returndocument.querySelector(obj);
}
varn=0;
functiontextFn(){
this.textContent="點擊了"+(++n)+"次";
}
$('#btn1').onclick=function(){
console.log($('#text'));
$('#text').addEventListener('click',textFn);
$('#text').textContent="開始監聽click事件";
};
$('#btn2').onclick=function(){
n=0;
$('#text').removeEventListener('click',textFn);
$('#text').textContent="移除監聽click事件,恢復到"+n+"次";
};
</script>
</body>
</html>
5. 如何用JS禁用網頁F12按鍵。。。急急
你可以監聽鍵盤事件,當鍵盤按下去是F12的時候,return false。這樣就可以禁止了,然後這沒有什麼卵用。F12隻是快捷鍵,人家要看你的源代碼,審查元素,一樣會出來。所以,這時候你又想到禁右鍵菜單,然而,想看你的人,直接從工具進去,也是可以看到,所以,我不建議去做無用功
6. 如何實時監聽 input 和 textarea輸入框值的變化
在實際前端開發中我們經常會遇到要實時監聽用戶的輸入,根據不同的輸入值來採取不同的措施。舉一個常見的例子:我們在使用Google 搜索框進行搜索時,每多輸入一個字,搜索框下方顯示的匹配結果會實時變化。這樣的效果就是通過實時監聽搜索框的輸入值變化從而提取不同的匹配結果來實現的。
那麼,一般使用最多的輸入框就是 input 和 textarea 了。要想實時監聽這兩種輸入框的值變化,就不得不提到鍵盤事件 key event 了。
鍵盤相關事件
onkeydown
onkeypress
onkeyup
oninput
onchange
onpropertychange
onkeydown/onkeypress/onkeyup
使用這三個事件監聽輸入框值變化,不能監聽到右鍵的復制、粘貼、剪切的操作。
onkeydown
按下鍵盤上的任意鍵(不包括PrScrn鍵)時觸發;如果一直按著鍵不放,則會一直觸發此事件。
onkeypress
按下鍵盤上的可顯示字元鍵(可以參考此文的鍵盤按鍵分類一節)時觸發,如果一直按著鍵不放,則會一直觸發此事件。
onkeyup
釋放鍵盤上的任意鍵(不包括PrScrn鍵)時觸發
1、是否可以捕獲組合鍵?
onkeydown/onkeyup可以捕獲組合鍵,onkeypress 只能捕獲單個字元。
在捕獲組合鍵時建議使用 onkeyup 事件。
2、是否區分大小寫字元?
onkeypress 能區分字元的大小寫,onkeydown/onkeyup不能區分。
3、是否區分主鍵盤和小鍵盤的數字?
onkeypress不區分主鍵盤和小鍵盤的數字,onkeydown/onkeyup則可以區分。
4、觸發順序
先 onkeydown, 再 onkeypress, 最後onkeyup
參考文檔
oninput/onpropertychange
上面講到用 keydown/keypress/keyup無法監聽右鍵粘貼復制操作,於是就有了 oninput 事件。
oninput是 HTML5的新事件,可以在輸入框( textarea, input:text/password/search等)的value值發生變化時(通過 JS修改輸入值除外)立即觸發,所以可以監聽右鍵粘貼復制操作。但 IE9.0以下版本不支持,此時需要用到IE特有的 onpropertychange事件。在 Safari5.0以下版本,oninput 不支持 textarea 元素。
onpropertychange是 IE特有的事件,與 oninput不同的是,只要綁定對象的相關屬性(不單 value 值)發生變化(包括 通過JS腳本來修改)都會觸發此事件。
onchange
要觸發這個事件有2個必備條件:
1、和onpropertychange一樣,只要綁定對象的相關屬性發生了變化就會觸發此事件。但和onpropertychange不同,通過JS腳本改變屬性時無法觸發);
2、輸入框失去焦點後觸發,所以無法做到實時監聽;
鍵盤按鍵分類
鍵盤上的每一個按鍵都對應唯一的 ASCII碼值,從這個角度理解其實每一個按鍵都是字元鍵。但這些按鍵可以分為2類: ASCII碼控制字元鍵和 ASCII碼可顯示字元鍵。
ASCII碼控制字元鍵
控制字元鍵是不會產生我們能看到的字元的按鍵,這類控制字元鍵常見的有:F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開始鍵}和方向鍵。
常見控制字元鍵對應的 ASCII碼見下:
ESC鍵 VK_ESCAPE (27)
回車鍵: VK_RETURN (13)
TAB鍵: VK_TAB (9)
Caps Lock鍵: VK_CAPITAL (20)
Shift鍵: VK_SHIFT ($10)
Ctrl鍵: VK_CONTROL (17)
Alt鍵: VK_MENU (18)
空格鍵: VK_SPACE (32)
退格鍵: VK_BACK (8)
左徽標鍵: VK_LWIN (91)
右徽標鍵: VK_LWIN (92)
滑鼠右鍵快捷鍵:VK_APPS (93)
Insert鍵: VK_INSERT (45)
Home鍵: VK_HOME (36)
Page Up: VK_PRIOR (33)
PageDown: VK_NEXT (34)
End鍵: VK_END (35)
Delete鍵: VK_DELETE (46)
方向鍵(←): VK_LEFT (37)
方向鍵(↑): VK_UP (38)
方向鍵(→): VK_RIGHT (39)
方向鍵(↓): VK_DOWN (40)
F1鍵: VK_F1 (112)
F2鍵: VK_F2 (113)
F3鍵: VK_F3 (114)
F4鍵: VK_F4 (115)
F5鍵: VK_F5 (116)
F6鍵: VK_F6 (117)
F7鍵: VK_F7 (118)
F8鍵: VK_F8 (119)
F9鍵: VK_F9 (120)
F10鍵: VK_F10 (121)
F11鍵: VK_F11 (122)
F12鍵: VK_F12 (123)
ASCII碼可顯示字元鍵
可顯示字元鍵是會產生我們能看到的字元的按鍵,這類按鍵常見得有:數字(包括 shift+數字)、字母(大小寫)、小鍵盤。
常用可顯示字元鍵ASCII碼如下:
65 A 鍵
66 B 鍵
67 C 鍵
68 D 鍵
69 E 鍵
70 F 鍵
71 G 鍵
72 H 鍵
73 I 鍵
74 J 鍵
75 K 鍵
76 L 鍵
77 M 鍵
78 N 鍵
79 O 鍵
80 P 鍵
81 Q 鍵
82 R 鍵
83 S 鍵
84 T 鍵
85 U 鍵
86 V 鍵
87 W 鍵
88 X 鍵
89 Y 鍵
90 Z 鍵
鍵盤按鍵 ASCII 碼對應表
7. JS 怎麼實現按鈕按下時,相當於空格鍵效果
JS實現綁定事件監聽的幾種方法 一、行內綁定 行內綁定:在HTML的標簽中通過onclick屬性進行綁定,綁定方式:on+事件名,在將所觸發的事件賦值給該屬性,如下: <button onclick="alert('123');">點擊</button> 二、使用element.onclick進行事件綁定 使用element