javascript event e.which的功能是什麼?請舉例說明。JavaScript事件e.which?
回答
e.which
不是事件,which
是event
對象的屬性,大多數人在其事件處理程序中標記爲e
。它包含被按下以觸發事件的鍵的關鍵代碼(例如:keydown,keyup)。
document.onkeypress = function(myEvent) { // doesn't have to be "e"
console.log(myEvent.which);
};
使用該代碼,控制檯將打印出您在鍵盤上按下的任何按鍵的代碼。
它並不需要Firebug,只有某種console.log(比Firebug提供的要多,比如webkitt-ens)。 – npup 2010-06-16 07:19:42
'which'也存在於鼠標事件上,而您的示例在IE中不起作用,其中事件處理程序不會收到事件參數。 – 2010-06-16 08:45:16
只是另一個幫助所有誰發現這一點(將張貼在其他e.which問題)。我在jQuery論壇上發了一篇文章,列出了絕大多數e.which代碼及其相關密鑰。帖子在這裏 - > http://forum.jquery.com/topic/eventwhich-code-list-just-for-help – SpYk3HH 2012-01-13 17:01:34
which
是Event
對象的財產。它是在大多數瀏覽器中爲與鍵和鼠標有關的事件定義的,但在IE中(在版本9之前)沒有定義這兩種情況。
對於與鼠標有關的事件,which
指定了涉及的鼠標按鈕。對於IE < 9,可在window.event.button
中找到相應的值。爲了使事情複雜化,非IE瀏覽器還支持鼠標事件的button
屬性,有時會報告與which
不同的值。而且,瀏覽器有時對於同一按鈕或按鈕組合具有不同的值。如果您堅持在所有支持它的瀏覽器中使用which
,並且在IE < 9中使用button
,一個常數是值1總是表示鼠標左鍵被包含(儘管不一定是單獨的)。我們推薦Jan Wolter's article on JavaScript mouse events。
對於與鍵相關的事件,which
與已按下的鍵相關。對於和keyup
事件,這是相對簡單的:它是按鍵的關鍵代碼,並返回與事件的keyCode
屬性相同的值。由於所有瀏覽器都支持keyCode
屬性,並且IE < 9不支持which
,所以對於和keyup
事件,通常應使用keyCode
。
對於keypress
事件,情況更爲複雜。對於可打印字符鍵,which
是被按下的鍵的字符代碼,並且在比charCode
屬性更多的瀏覽器中受支持。在IE < 9中相當於keyCode
屬性。因此,爲了檢測輸入的字符,以下是一個跨瀏覽器的方法。請注意,下面的代碼不應該被用於非打印鍵,例如箭頭鍵,你應該在事件,而不是檢測:
document.onkeypress = function(e) {
e = e || window.event;
var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
if (charCode) {
alert("Character typed: " + String.fromCharCode(charCode));
}
};
同樣,對於更多的細節,我建議Jan Wolter's article on JavaScript key events
這功能已從Web標準中刪除。儘管一些瀏覽器可能仍然支持它,但它正在被丟棄。不要在舊項目或新項目中使用它。使用它的頁面或Web應用程序可能會隨時中斷。
如果可用,您應該使用KeyboardEvent.key
。
期間發生的事件,e
:
e.which
是一樣的:
e.keyCode
所以這兩個功能讓你獲得一個按鍵時按下的鍵的鍵碼, keydown或keyup事件
很多人請使用||
(OR)來確保其代碼在不支持哪些屬性的瀏覽器中工作。看看下面的代碼:
document.onkeypress = function(e) {
var key = e.which || e.keyCode;
alert(key);
}
嘿傢伙我的回答是正確的只是試試吧! – 2016-11-26 04:52:30
- 1. jQuery e.which在switch語句中
- 2. 鼠標移動和跨瀏覽器e.which
- 3. e.which沒有工作在IE 9
- 4. e.keyCode和e.which有什麼區別?
- 5. JavaScript事件
- 6. JavaScript + onunload事件
- 7. Javascript onHover事件
- 8. 事件javascript
- 9. Javascript onclose事件
- 10. OO Javascript - 事件
- 11. Javascript事件
- 12. JavaScript事件
- 13. Javascript onfocus事件
- 14. Javascript + onresize事件
- 15. Javascript onmouseout事件
- 16. 在JavaScript事件
- 17. Javascript OnClick事件
- 18. Javascript onsmit事件
- 19. Keydown事件Javascript?
- 20. 鈦JavaScript事件
- 21. Javascript - onClick事件
- 22. Javascript window.onsave事件
- 23. 「查找頁面」事件的JavaScript事件?
- 24. stopPropagation本地事件與JavaScript事件
- 25. JavaScript事件乘以
- 26. Javascript雙擊事件
- 27. javascript事件繼承
- 28. 定時JavaScript事件
- 29. javascript事件處理
- 30. JavaScript:事件對象
那麼爲什麼我們需要論壇?每個人都可以谷歌他們的查詢。它分享知識。 – minil 2010-06-17 05:41:56
兩年後,我在其他地方閱讀了幾頁後,無法理解這個屬性。然後我偶然發現了這個舊帖子並獲得了它。所以對於@Reigel,也許在告訴某人谷歌之前重新考慮一下。也許他們已經做到了。這不是SO的目的。 – Aerovistae 2012-04-11 02:27:14
相同@JuanMendes – Aerovistae 2012-04-11 02:28:39