jQuery:移动设备的keyup事件
我有一些问题要在我的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
该function就会立即开启。 反正有没有让它适用于移动设备?
您可以添加输入事件。 这是一个在输入发生变化时触发的事件。 输入适用于台式机和手机
test.on('keyup input', function(){ //code });
您可以查看此答案以获取有关jQuery输入事件的更多详细信息
你可以使用三个事件(但你必须小心你如何“组合”它们):
-
keyup :它适用于带键盘的设备,当你释放一个键(任何键,甚至是在屏幕上没有显示任何键的键,如ALT或CTRL)时触发它;
-
touchend :它适用于触摸屏设备,当您从显示屏上移开手指/笔时会触发它;
-
输入 :当你按一个键“并且输入改变”时触发它(如果你按下ALT或CTRL键这个事件没有被触发)。
输入事件适用于键盘设备和触摸屏设备,重要的是指出这一点,因为在接受的答案中,示例是正确但近似的:
test.on('keyup input', function(){ }
在基于键盘的设备上,此函数被调用两次,因为将触发事件键盘和输入 。
正确答案应该是:
test.on('keyup touchend', function(){ }
(该function在台式机/笔记本电脑的键盘上调用 ,或在手机的触摸屏上调用 )
或者你可以简单地使用
test.on('input', function(){ }
但请记住,所有键都不会触发输入事件(CTRL,ALT&co。不会触发事件)。
从设备中移除触摸点时会触发touchend事件。
https://developer.mozilla.org/en-US/docs/Web/Events/touchend
您可以将keyup和touchend事件传递给.on()jQuery方法(而不是keyup()方法)来触发这两个事件的代码。
test.on('keyup touchend', function(){ //code });