Javascript 空格键和反空格键的Keyup函数事件

Javascript 空格键和反空格键的Keyup函数事件,javascript,jquery,events,indexof,keyup,Javascript,Jquery,Events,Indexof,Keyup,e.which事件函数存在一些恼人的问题。每当我写一个简单的关于keyup的代码并检查按下哪个键时,它基本上做了我想做的错误的事情 试试看,如果你先按backspace键,它会附加单词列表,上下左右和多个移位也是如此。这是相当烦人的,并试图想出一个解决办法 $('textarea').keyup(function (e) { var list = ['key', 'keep', 'king', 'kept']; if(e.which !== 32){ for (var

e.which
事件函数存在一些恼人的问题。每当我写一个简单的关于keyup的代码并检查按下哪个键时,它基本上做了我想做的错误的事情

试试看,如果你先按backspace键,它会附加单词列表,上下左右和多个移位也是如此。这是相当烦人的,并试图想出一个解决办法

$('textarea').keyup(function (e) {
    var list = ['key', 'keep', 'king', 'kept'];
    if(e.which !== 32){
    for (var i = 0; i < list.length; i++) {
        if (list[i].toLowerCase().indexOf($(this).val()) === 0) {
            $('#div').append('<span class="autosuggest">' + list[i] + '&nbsp;</span>');
        } else if (list[i].toLowerCase().indexOf($(this).val()) === -1) {
            $('#div').html('');
        }
    }
   }
});
$('textarea').keyup(函数(e){
变量列表=['key'、'keep'、'king'、'keep'];
如果(例如,哪个!==32){
对于(变量i=0;i
如果没有输入时出现问题,请检查是否有输入

(对不起,我不能使用jsbin)

首先,将值access移动到范围的顶部

var value = $(this).val();
然后检查值是否有任何字符。否则我们甚至不需要做循环

if (!value.length) return;
完成的代码:

$('textarea').keyup(function () {
    var list = ['key', 'keep', 'king', 'kept'],
        value = $(this).val();

    if (!value.length) return;

    for (var i = 0; i < list.length; i++) {
        if (list[i].toLowerCase().indexOf(value) === 0) {
            $('#div').append('<span class="autosuggest">' + list[i] + '&nbsp;</span>');
        } else if (list[i].toLowerCase().indexOf(value) === -1) {
            $('#div').html('');
        }
    }
});
$('textarea').keyup(函数(){
变量列表=['key'、'keep'、'king'、'keep'],
value=$(this.val();
如果(!value.length)返回;
对于(变量i=0;i
想要的结果是什么?不要在单词中没有开头的键上显示追加列表。比如上下左右移动和空格退格等等。我只想让他们显示它是否以单词的字符开头。K或类似的东西。这是我代码中的最后一个问题,我一直在努力解决这个问题,所以我试图找出一个小错误,我的意思是,这段代码应该做什么?这和你的代码中没有出现的代码有什么关系?是的,过了一段时间,我意识到,我真正的代码中确实有它,因为如果(e.which!==32){//rest of code},直到我意识到我不认为它只是e。这…我不知道你的意思。。。能否提供重现问题的步骤?
如果(!value.length)返回不会给出该错误。它通常出现在一个if语句中,带有一个
=
,而不是两个或三个。对于给您带来的不便,很抱歉,这里有一个垃圾箱,由于某种原因,它不能正常工作,尽管这已经是因为主要问题发生了。在文本区域中,按空格,然后按backspace可添加列表。按上下左右键和其他非必要键可使列表追加:xYeah。。。这对我根本不起作用。但是,如果在其为空时停止该空格/退格问题。我不确定你想做什么,但可能有一个插件可以做到这一点……是的,我不需要插件,这是特定的,比我找到的其他插件要短我会用你的代码再试一次