0

所以当我在我的网站上输入“家”时,我想做点什么。我认为这可以使用 keyup 并可能绑定来完成?

h-72 o-79 m-77 e-69

我已经设法做到了,但我相信有更好的方法..

if (e.keyCode == 72) {
    $(document).keyup(function (u) {
        if (u.keyCode == 79) {
            $(document).keyup(function (l) {
                if (l.keyCode == 77) {...
4

4 回答 4

1
var reading = "";
$(window).keypress(function(e){
    reading += String.fromCharCode(e.which);
    if("home".indexOf(reading) < 0)
        reading = "";
    else if(reading == "home"){
        //DO WHAT YOU WANT
    }
}
于 2012-03-21T13:24:23.137 回答
0

您应该做的是保留最后 n 个按键的缓冲区。然后你所要做的就是检查字符串中是否出现了“home”这个词。我会让你理清细节,但基本结构应该不会太难。

//Example of checking if home is contained within "myString"
myString.indexOf("home") != -1;

var keyBuffer;
$(document).keyup(function(u){

    //Keep a key buffer.
    keyBuffer += u.keyCode;

    //Trim keybuffer so it isn't too long.

    //Check for the presence of any of your keywords such as "home" and respond.
});
于 2012-03-21T13:23:28.797 回答
0

你可以试试这个

​$(function(){
    $(document).keyup(function(e){
        e.preventDefault();
        var str=$(e.target).val();
        if(str.toLowerCase()=='home')
        {
            alert("Got home here !");
        }      
    });
});​

小提琴在这里

于 2012-03-21T13:26:22.670 回答
0

基于 jQuery.com 上的 Konami Code 实现

if ( window.addEventListener ) {
 var hkeys = [], hhome = "72,79,77,69";
window.addEventListener("keydown", function(e){
hkeys.push( e.keyCode );

if ( hkeys.toString().indexOf( hhome ) >= 0 )
 alert("Home!!!");
 hkeys = [];
}, true);
} 
于 2012-03-21T13:29:00.493 回答