Jquery 是否可以通过键入单词来触发事件?

Jquery 是否可以通过键入单词来触发事件?,jquery,Jquery,是否有可能在键入单词时触发事件(不使用输入字段) 我正在处理的网站上的某些元素具有class。隐藏的元素(显示:无)。在键入“hello”一词之后(在任何给定时间),如何将class.open(display:block)添加到这些隐藏元素中 我一直在尝试这种方法,但运气不佳: $(文档).ready(函数(){ "严格使用",; $('body')。在('keyup',function()上{ if(this.value.trim().toLowerCase()=='hello'){ $('

是否有可能在键入单词时触发事件(不使用输入字段)

我正在处理的网站上的某些元素具有class
。隐藏的元素
(显示:无)。在键入“hello”一词之后(在任何给定时间),如何将class
.open
(display:block)添加到这些隐藏元素中

我一直在尝试这种方法,但运气不佳:

$(文档).ready(函数(){
"严格使用",;
$('body')。在('keyup',function()上{
if(this.value.trim().toLowerCase()=='hello'){
$('.hidden_elements').addClass('open');
}
});
});
。隐藏的\u元素{
显示:无;
}
.打开{
显示:块;
}

我被隐藏了

我被隐藏了
好的。下面的代码片段已经成功了

将采取以下步骤

  • 读取事件数据本身,而不是
    this.value
    <代码>主体上的该值保持未定义
  • 使用
    event.originalEvent.key
  • 缓冲区
    buff
    长度等于或大于5后,对照单词“hello”检查最后输入的5个字符
  • 只要输入
    hello
    它就会通过添加
    open
    类来显示div
  • $(文档).ready(函数(){
    "严格使用",;
    让buff='';
    $('body')。在('keyup',函数(事件)上{
    buff+=event.originalEvent.key;
    //控制台日志('buff.length',buff.length,buff);
    如果(buff.length>=5){
    常量lastFive=buff.substr(buff.length-5);
    if(lastFive.toLowerCase()=='hello'){
    $('.hidden_elements').addClass('open');
    }
    }
    });
    });
    
    。隐藏的\u元素{
    显示:无;
    }
    .打开{
    显示:块;
    }
    
    我被隐藏了
    我被隐藏了
    $(文档).ready(函数(){
    (功能(){
    "严格使用",;
    var typed=“”,observe=“hello”;
    $(文档).on('keypress',函数(e){
    typed+=String.fromCharCode(e.keyCode | | e.which).toLowerCase();
    if(遵守.indexOf(类型)!=0){
    键入“”;
    }
    如果(观察==键入){
    $('.hidden_elements').addClass('open');
    键入“”;
    }
    });
    }());
    });
    
    .hidden\u元素{
    显示:无;
    }
    .打开{
    显示:块;
    }
    键入Hello

    我被隐藏了 我被隐藏了
    .addClass(open)
    缺少引号,应该是
    .addClass('open')如果您放入
    console.log('this',this.value)插入
    $('body')。在('keyup',function()上{
    第一行,您将看到它是未定义的。body元素上似乎没有任何value属性。
    keyup
    事件将不会向body添加内容,您必须有一个输入元素,您必须在其中键入内容。或者以某种方式读取事件本身,并将字符逐个放入缓冲区,然后检查是否存在错误hello作为最后一个缓冲区,然后调用业务逻辑来添加开放类,就像一个符咒!