我正在尝试一种简单的方法来在按住键超过1秒时更改输入字段中的字符。例如,按住 a 会将字符更改为á。 我想要做的确切事情可以在fluencia.com上看到。 如果角色再保持一段时间,也需要能够改变角色。
到目前为止,我所做的就是检测使用以下代码保存的密钥:
count = 0;
$(document).bind('keypress', function(e){
keyisdown = false;
key = e.which
if (e.which === key) {
keyisdown = true;
count ++;
if(count>1){
}
}
}).bind('keyup',function(){
keyisdown = false;
count = 0;
console.log('key up');
});
由于 亚当
答案 0 :(得分:0)
这应该用于密钥" a" ..您需要查找密钥
var fired = false;
$(document).on("keydown", function(e) {
if (e.keyCode == 65) {
var timer = setTimeout(function() {
if (!fired) console.log('its held');
fired = true;
}, 1000);
$(document).on("keyup", function() {
clearTimeout(timer);
});
}
});
答案 1 :(得分:0)
在上面的Graham T的帮助下,我有点玩耍,我想出了以下内容:
var fired = false;
var keycode = null;
var key = null;
$("#loginEmail").on("keypress", function(e) {
keycode = e.which;
key = String.fromCharCode(keycode);
});
$("#loginEmail").on("keydown", function(e) {
var s = this.value;
var str = this.value;
if (e.keyCode == 65) {
var timer = setTimeout(function() {
if (!fired) console.log('its held');
fired = true;
if(fired){
s = $("#loginEmail").val();
str = s.substring(0, s.length - 1);
replacewith = 'á';
str = str+replacewith;
$("#loginEmail").val(str);
}
}, 500);
$(document).on("keyup", function() {
clearTimeout(timer);
fired = false;
});
}
});
尚未清理。我不得不使用keypress来获取真正的字符(大写或不大写),然后使用keydown来检测被按下的键。