2
我正在嘗試以下代碼。它應該與輸入的sh
屬性更改爲1,每當shift
鍵被按下,並恢復到0發佈鍵盤事件未在contextmenu事件後註冊
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$(document).on("keyup","body",function(e) {
if (e.which == 16) {
$("input").attr("sh","0");
}
});
$(document).on("keydown","body",function(e) {
if (e.which == 16) {
$("input").attr("sh","1");
}
});
});
</script>
</head>
<body>
<input type = 'text' sh = '0'/>
<p>Just checking</p>
</body>
</html>
它工作正常,當執行這一系列事件時除外。在輸入沒有對焦的情況下按shift鍵。 (如預期的,Firebug顯示sh
變爲1)。現在按鍵仍然按下,重點放在輸入。現在做一個右鍵點擊輸入。上下文菜單彈出。現在,如果您釋放shift
鍵(讓contextmenu保持不變),Firebug會顯示sh
仍然爲1.您可以單擊contextmenu以外的其他設備,或者單擊paste
選項將剪貼板文本粘貼到輸入中,仍然可以使用sh
1.如果再次按下並釋放shift
,則只有sh
再次變爲0。
任何想法如何解決這個問題?
您是否需要檢查所有'文檔'上的'shift'鍵或輸入是否足夠? – 2013-03-10 10:42:47
而不是「身體」嘗試「*」。希望這會有所幫助。 – 2013-03-10 10:46:45
@KundanSinghChouhan,沒有好運的伴侶,如果我使用'*',它仍然是1! – SexyBeast 2013-03-10 11:12:45