移动设备的keyup事件



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

        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后立即启动。有没有办法让这个也适用于移动设备?

可以添加输入事件。这是一个在输入发生变化时触发的事件。在桌面和手机上都可以输入

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

关于jQuery Input Event

您可以使用三个事件(但您必须小心如何"组合"它们):

  • keyup:它适用于有键盘的设备,当你释放一个键(任何键,甚至是屏幕上没有显示任何东西的键,如ALT或CTRL)时触发;

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

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

输入事件适用于键盘设备和触摸屏设备,指出这一点很重要,因为在公认的答案中,示例是正确的,但近似的:
test.on('keyup input', function(){
}

在基于键盘的设备上,这个函数被调用两次,因为事件keyupinput将被触发。

正确答案应该是:

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

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

或者直接用

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

,但请记住,并不是所有的键(CTRL, ALT &

当触点从设备中移除时触发触点事件。

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

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

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

您应该添加一个输入事件。它可以在移动设备和电脑设备上使用。

相关内容

  • 没有找到相关文章

最新更新