【问题标题】:jQuery - type 'home' do something (keyup)jQuery - 键入“home”做某事(keyup)
【发布时间】:2012-03-21 13:05:38
【问题描述】:

所以当我在我的网站上输入“家”时,我想做点什么。我认为这可以使用 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) {...

【问题讨论】:

  • 改为创建主页按钮?
  • 使用单一功能并存储按键,每次按键时检查您是否存储了“家”然后做你想做的事。
  • 你想在哪里检查keyup,在文本框中?
  • @Sheikh Heera 在文档中没有任何地方

标签: jquery bind keycode keyup


【解决方案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
    }
}

【讨论】:

  • 你从哪里听说的。 event.which 属性规范了 event.keyCode 和 event.charCode。
  • Sheikh 方法确实支持早期版本的 IE,但 e.which 不是问题。它只需要 document.keyup 并使其变为LowerCase。
【解决方案2】:

您应该做的是保留最后 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.
});

【讨论】:

    【解决方案3】:

    基于 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);
    } 
    

    【讨论】:

      【解决方案4】:

      你可以试试这个

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

      小提琴是here

      【讨论】:

      • 抱歉,我希望它可以在文档中的任何位置工作,而不仅仅是输入。
      • 没问题,但您接受的答案是否也可以在 Internet Explorer 中使用?
      • 没有,你知道为什么吗?
      猜你喜欢
      • 2014-11-19
      • 1970-01-01
      • 2013-02-14
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 2014-01-17
      相关资源
      最近更新 更多