简单的.on('keydown')jQuery事件在按下下一个键之前没有响应

时间:2013-08-28 02:41:01

标签: javascript jquery javascript-events event-handling

我正在为朋友制作一个页面,并且我有一个隐藏的文本字段,当用户键入文本时,将其转换为div,使其看起来像是在屏幕上而不是在输入字段中键入。

以下是该页面的链接:http://merkd.com/godis.php

这是我用来响应击键的函数:

$('#hiddenInput').keydown(function() {
    var input = $('#hiddenInput').val();
    var html = '<div style="float: left;">'+input+'</div><div id="cursor">|</div>';
    $('#typingArea').html(html);
});

现在可以看到文本字段,以便您可以看到问题。输入或删除文本时,直到下一次按键才会响应。因此,如果我输入一个字母,则在输入下一个字母之前不会显示任何内容。

我查看了jQuery .on()文档,但我找不到任何相关内容。任何帮助深表感谢。

P.S。我知道它应该是一个单独的问题,但是有一种简单的方法可以使文本字段始终处于焦点状态吗?我想这样做,无论用户点击的位置或其他什么,如果他们输入,文本仍会显示。

1 个答案:

答案 0 :(得分:6)

使用.keyup()事件,因为当您第一次按(keydown)时,从不输入字母,因此var html获得之前的值。对于第二部分,您可以绑定keypress中的document事件来聚焦您的输入字段。