【问题标题】:Change click to keypress in JavaScript在 JavaScript 中将点击更改为按键
【发布时间】:2017-10-05 09:09:32
【问题描述】:

我从here 下载了一个HTML5 音频播放器源 我想改变播放器的控制方式,从点击到按键。

js 文件中我发现了这个:

// play click
    $('.play').click(function (e) {
        e.preventDefault();

        playAudio();
    });

我试图实现这一点,但没有成功:

document.onkeydown = function(e) {
if (e.keyCode == 78) {
    e.preventDefault();

        playAudio();
    }};

我怎样才能让它工作?

【问题讨论】:

    标签: javascript jquery html keyboard-shortcuts


    【解决方案1】:

    你需要的是.onkeypress

    假设playAudio,你可以模拟jQuery正在做的事情如下:

    var elements=document.querySelectorAll('.play');
    for(var i=0;i<elements.length;i++) elements[i].onkeypress=function(e) {
        if(e.keyCode!=78) return;
        playAudio();
        e.preventDefault();
    }
    

    如果你确定只有一个这样的元素,你可以这样写:

    document.querySelector.onkeypress=function(e) {
        if(e.keyCode!=78) return;
        playAudio();
        e.preventDefault();
    }
    

    【讨论】:

      【解决方案2】:

      谢谢大家。我感谢你所有的帮助。清除浏览器 cookie 后,我的实现运行良好。

      【讨论】:

        【解决方案3】:

        这是给你的工作演示:

        https://jsfiddle.net/milanchheda/b478atu0/1/

        HTML:

         <div class="containerClass">
          <input type="text" class="inputClass" />
        </div>
        

        JQuery 代码:

         $(".containerClass").on('keydown', '.inputClass', function() {
          alert("keydown...");
        });
        

        【讨论】:

          【解决方案4】:

          window.addEventListener("keydown", yourFunction, false); //listen to any keydown
          
          function yourFunction(e)
          {
           if (e.keyCode == "65") 
           {
             alert("The 'a' key is pressed.");
           }
          }

          【讨论】:

          • 虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。
          【解决方案5】:

          试试这个

          document.onkeypress = function(e) {
              if (e.keyCode == 78) {
                     e.preventDefault();
                     playAudio();
              }
          };
          

          【讨论】:

            【解决方案6】:

            将您的代码更改为

            $('.play').keydown(function (e) {
                e.preventDefault();
            
                playAudio();
            });
            

            这会起作用

            【讨论】:

              【解决方案7】:

              没有测试,但你可以试试这个

              document.body.onkeydown = function(e) {
                //rest of the code
              };
              

              【讨论】:

                猜你喜欢
                • 2022-09-23
                • 1970-01-01
                • 1970-01-01
                • 2014-05-20
                • 1970-01-01
                • 2019-09-02
                • 1970-01-01
                • 2013-04-22
                • 1970-01-01
                相关资源
                最近更新 更多