【问题标题】:jQuery: keyup event for mobile devicejQuery:移动设备的 keyup 事件
【发布时间】:2016-12-23 16:39:19
【问题描述】:

在我的 iPhone 上触发 keyup 事件时遇到一些问题,我的代码如下:

        var passwordArray = ["word", "test", "hello", "another", "here"];

        var test = document.getElementById('enter-password');
        test.addEventListener('keyup', function(e) {

            if (jQuery.inArray(this.value, passwordArray) != -1) {
                alert("THIS IS WORKING");
            } else {}

        });

这个想法是当用户在#enter-password 字段中输入时,当他们匹配passwordArray 中的一个词时,警报就会触发。这适用于桌面,例如一旦您输入word,该功能将在您输入d 后立即触发。有没有办法让它也适用于移动设备?

【问题讨论】:

    标签: javascript jquery mobile click keyup


    【解决方案1】:

    当触摸点从设备上移除时触发 touchend 事件。

    https://developer.mozilla.org/en-US/docs/Web/Events/touchend

    您可以将 keyup 和 touchend 事件传递给 .on() jQuery 方法(而不是 keyup() 方法)以在这两个事件上触发您的代码。

    test.on('keyup touchend', function(){
    //code
    });
    

    【讨论】:

      【解决方案2】:

      您可以添加输入事件。这是一个在输入更改时触发的事件。输入法既适用于台式机,也适用于手机

      test.on('keyup input', function(){
        //code
      });
      

      您可以在jQuery Input Event上查看此答案以获取更多详细信息

      【讨论】:

        【解决方案3】:

        您可以使用三个事件(但您必须小心“组合”它们的方式):

        • keyup:它适用于带有键盘的设备,当您释放一个键(任何键,甚至是在屏幕上不显示任何内容的键,如 ALT 或 CTRL );

        • touchend:它适用于触摸屏设备,当您将手指/笔从显示屏上移开时触发;

        • 输入:当您按下一个键“并且输入发生变化”时触发它(如果您按下 ALT 或 CTRL 等键,则不会触发此事件)。

          李>

        input 事件适用于键盘设备和触摸屏设备,重要的是要指出这一点,因为在接受的答案中,示例是正确的但近似值:

        test.on('keyup input', function(){
        }
        

        基于键盘的设备上,此函数被调用两次,因为事件 keyupinput 都会被触发。

        正确答案应该是:

        test.on('keyup touchend', function(){
        }
        

        (该函数在台式机/笔记本电脑的 keyup 或移动设备的 touchend 上调用)

        或者你可以简单地使用

        test.on('input', function(){
        }
        

        但请记住,input 事件不会由所有键触发(CTRL、ALT 和 co. 不会触发该事件)。

        【讨论】:

          【解决方案4】:

          您应该添加一个输入事件。它适用于移动设备和计算机设备。

          【讨论】:

          • 最好在您的回复中添加更多信息。请参阅the FAQ 并尝试更新您的答案
          猜你喜欢
          • 2014-02-02
          • 2021-12-23
          • 1970-01-01
          • 1970-01-01
          • 2016-01-17
          • 2016-03-31
          • 2015-01-13
          • 1970-01-01
          相关资源
          最近更新 更多