关于javascript:jQuery:移动设备的keyup事件

jQuery: keyup event for mobile device

我遇到一些问题,导致在我的iPhone上触发按键事件,我的代码如下:

1
2
3
4
5
6
7
8
9
10
        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,该功能将立即触发。反正有没有办法让它也可以在移动设备上使用?


您可以添加输入事件。每当输入更改时,都会触发此事件。输入在台式机和手机上均可使用

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

您可以检查此答案以获取有关jQuery Input Event的更多详细信息


您可以使用三个事件(但您必须谨慎组合它们):

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

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

  • 输入:当您按下一个键"并且输入更改"时触发(如果您按下ALT或CTRL这样的键,则不会触发此事件)。

input事件在键盘设备和触摸屏设备上都有效,必须指出这一点,因为在可接受的答案中,该示例是正确的但近似的:

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

在基于键盘的设备上,此功能被调用两次,因为将触发事件键入和输入。

正确答案应为:

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

(此功能在台式机/笔记本电脑的键盘上调用,或在手机的touchend上调用)

或者您可以简单地使用

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

,但请记住,输入事件不会被所有键(CTRL,ALT和


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

https://developer.mozilla.org/zh-CN/docs/Web/Events/touchend

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

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


n