是否可以检测到第一次按或第二次按?例如,像某些视频播放器一样,第一次按空格键会暂停,再按一次即可播放。所以我很奇怪是否有可能使用jquery做到这一点?
if (e.keyCode == 32) { //space bar
}
答案 0 :(得分:1)
您无需检测按键的次数,而是在每次按下时检查视频的状态并进行更改。假设您使用的是HTML5视频,请尝试以下操作:
$('#myElement').keypress(function(e) {
var video = $('#video')[0];
if (e.keyCode == 13) {
if (video.paused)
video.play();
else
video.pause();
}
});
答案 1 :(得分:0)
你不需要jQuery来做到这一点。你可以创建一个布尔变量:
var hasFirstPress = false;
然后
if (e.keyCode == 32) { //space bar
hasFirstPress = true;
}
答案 2 :(得分:0)
你可以有一面旗帜并检查!保持测试区域,目前我正在使用<textarea>
:
$(function () {
keyPresses = {};
$("#test").keydown(function (e) {
keyPresses[e.keyCode] = (keyPresses[e.keyCode] == undefined) ? 1 : keyPresses[e.keyCode] + 1;
$(this).val($(this).val() + "Key pressed " + e.keyCode + " for " + keyPresses[e.keyCode] + " time.\n");
return false;
});
});
textarea {font-family: Monaco, MonacoB, MonacoB2, Consolas; width: 90%; height: 500px; resize: none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<textarea id="test"></textarea>
答案 3 :(得分:0)
感谢所有建议,我现在得到了自己的答案。
var lastKeyPress = 0;
$(document).keyup(function (e) {
if (e.keyCode == 32 && lastKeyPress === 1) { // second times
alert("pause");
lastKeyPress = 0;
} else if (e.keyCode == 32 && lastKeyPress === 0) { // first times
alert("play");
lastKeyPress = 1;
}
});