jQuery - наберите 'home', сделайте что-нибудь (keyup) - PullRequest
0 голосов
/ 21 марта 2012

Поэтому, когда я нахожусь на своем сайте и набираю «дом», я хочу что-то сделать.Я думаю, что это можно сделать с помощью 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 ]

1 голос
/ 21 марта 2012
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
    }
}
0 голосов
/ 21 марта 2012

Основы реализации кода Konami на jQuery.com

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);
} 
0 голосов
/ 21 марта 2012

Вы можете попробовать это

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

Скрипка здесь .

0 голосов
/ 21 марта 2012

Что вам нужно сделать, это сохранить буфер последних 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.
});
...