javascript - 打字太快时不会触发按键事件的功能

标签 javascript jquery

FIDDLE DEMO

 var oldValue;

$(document).on('keydown','.main', function (e) {
    oldValue = $(this).val(); 
});
var newValue;
$(document).on('keyup', '.main',function (e) {
    newValue = $(this).val();
     foo(oldValue,newValue);
});

function foo(orig){
$('#table2').find('tbody tr').each(function (i) {
        var $td2 = $(this).find('td input:text');
        if (orig == $td2.val()) {
            $td2.val(newValue);
        }
    });
}

这就是发生的情况,如果我在表 1 上缓慢键入更改“Apple”,“Apple”输入字段会发生变化,但如果我键入太快,我的代码将无法工作。

最佳答案

如果在原始输入字段和相应的字段之间添加一些关系会怎样:

 <input type='text' class= 'main' value="Apple" rel="sec_apple"/>

<input type='text' value="Apple"  class="sec_apple"/>

第二个输入。

那么你的 javascript 可能看起来像这样:

$(document).on('keyup', '.main',function (e) {
    foo($(this));
});

function foo(orig){
    rel = orig.attr('rel');    
    var sec = $('.' + rel);
    sec.val(orig.val());    
}

<强> Demo

关于javascript - 打字太快时不会触发按键事件的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28083528/

相关文章:

javascript - 如何在 Angular 中使用 Swiperjs CDN?

javascript - 如何使用 Redux-Saga 处理 fetch() 响应中的错误?

javascript - 点击调用功能不起作用

javascript - 图像 slider - Javascript

php - 使用 jquery 提交多个文本区域

javascript - 使用handlebars.js显示多个json对象的值

javascript - 使用子文件夹 html 文件访问父文件夹 html 文件

jquery - HTML5 与 jQuery 验证(对于输入...)

javascript - 无法在文本区域中添加更多文本

javascript - 使用 Angular 加载部分页面并编译 Controller