Javascript “如何改进”;关于keyup“;速度
这是我的密码:Javascript “如何改进”;关于keyup“;速度,javascript,jquery,onkeyup,Javascript,Jquery,Onkeyup,这是我的密码: $('#MyInput').on('keyup', function (e) { if ($(this).val().length == 1) { ajaxSearch($(this).val()); } }); 我想在输入只有一个字符时运行函数 问题是,如果用户键入单词的速度非常快,那么'keyup'事件似乎是从第二个字符开始调用的,这意味着它不会调用ajaxSearch()方法 当函数只有一个字符时,有没有办法提高调用该函数的事件速
$('#MyInput').on('keyup', function (e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val());
}
});
我想在输入只有一个字符时运行函数
问题是,如果用户键入单词的速度非常快,那么'keyup'
事件似乎是从第二个字符开始调用的,这意味着它不会调用ajaxSearch()
方法
当函数只有一个字符时,有没有办法提高调用该函数的事件速度?当用户键入太快时,他/她可能尚未释放上一个键,因此技术上还没有发生
尝试按keypress
而不是keypup
$('#MyInput').on('keypress', function (e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val());
}
});
编辑
在按键上
输入
的值
属性尚未更新,因此,如果用户只输入一个字符,则捕获按键
$('#MyInput').on('keypress', function (e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val());
}
});
$('#MyInput')。打开('keyup keypress',函数(e){
if($(this).val().length==1){
ajaxSearch($(this).val(),e);
}
});
函数ajaxSearch(值,e){
console.log(值,e.type)
}
尝试按键盘而不是按键盘
$('#MyInput').on('keypress', function (e) {
if ($(this).val().length == 1) {
ajaxSearch($(this).val());
}
});
无法想象它在第二个角色被触发。。。这是你发现的第一个角色的释放。也许你想要按键?粘贴怎么样?好的。。。但是当我使用keypress
时,方法ajaxSearch($(this.val())
没有得到正确的参数,因为在按下键的那一刻,字符还不在输入中。@JoaoWind我已经附上了一个演示,经过一些修改,应该可以处理所有场景。