2016-08-17 122 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。將不會觸發該事件)。