2016-08-17 113 views
3

我在得到一个keyup事件的几个问题,以火在我的iPhone keyup事件,我的代码如下:jQuery的:移动设备

 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,该功能就会立即启动。无论如何也得到这个为移动工作吗?

回答

8

您可以添加输入事件。每当输入发生变化时触发一个事件。输入工作无论在台式机以及移动电话

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

您可以检查这个答案,详细了解jQuery Input Event

1

从设备中删除触摸点时会触发touchend事件。

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

你可以通过KEYUP和touchend事件进入。对()jQuery的方法(而不是KEYUP()方法)来触发这两个事件的代码。

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

有三个事件,你可以使用(但你必须要小心你如何“结合“他们):

  • KEYUP:它适用于设备与键盘,当你发布一个键(任何键,甚至键不显示在屏幕上任何东西,如ALT或CTRL它的触发);

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

  • 输入:当您按下按键并且输入改变时(如果按下ALT或CTRL键这个事件没有被触发),它会被触发。

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

    键盘为主:

输入事件适用于键盘设备,并与触摸屏设备,它的例子是正确的买入近似在接受的答案指出这一点becasue很重要设备,此功能被称为两次,因为事件键入输入将被触发。

正确的答案应该是:

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

(被调用的函数上KEYUP台式机/笔记本电脑或touchend用于手机)

,或者你可以简单地使用

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

但请记住输入事件不会被所有的键触发(CTRL,ALT & co。将不会触发该事件)。