Jquery 是否可以通过键入单词来触发事件?
是否有可能在键入单词时触发事件(不使用输入字段) 我正在处理的网站上的某些元素具有classJquery 是否可以通过键入单词来触发事件?,jquery,Jquery,是否有可能在键入单词时触发事件(不使用输入字段) 我正在处理的网站上的某些元素具有class。隐藏的元素(显示:无)。在键入“hello”一词之后(在任何给定时间),如何将class.open(display:block)添加到这些隐藏元素中 我一直在尝试这种方法,但运气不佳: $(文档).ready(函数(){ "严格使用",; $('body')。在('keyup',function()上{ if(this.value.trim().toLowerCase()=='hello'){ $('
。隐藏的元素
(显示:无)。在键入“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作为最后一个缓冲区,然后调用业务逻辑来添加开放类,就像一个符咒!