Javascript easyautocomplete 在IOS上的BUG處理

    之前一直在WEB實現autocomplete運用,手機上也是原生開發。此次客戶要求,對一個HTML頁面,在手機承現時,一個文本框須要實現AutoComplete功能。javascript

我使用的是EasyAutocompletejava

http://easyautocomplete.comspa

不過在蘋果IOS手機有一個BUG, 固然這個BUG不是EasyAutocomplete的BUG,僅僅是IOS的特性緣由。code

Android上沒有問題。事件

若是輸入英文,EasyAutocomplete在IOS上的表現,沒問題,可以觸發事件。可是當輸入中文時,沒法觸發事件。ip

搜狗輸入法也可以支持。開發

通過調查資料,研究EasyAutocomplete代碼,終於實現了在IOS,輸入中文也能觸發。rem

首先IOS的緣由,keyup事件不能觸發,settimeout不能使用。input

經修改以下:io

1.找到 bindEvents定義,在定義中增長一個事件方法,如function bindInputPropertychange(){}。

function bindEvents() {

   bindAllEvents();
   function bindAllEvents(){...}
   function bindFocusOut(){...}
   function bindKeyup() {...}
   .....
}

2.bindInputPropertychange事件方法,

function bindInputPropertychange() {
   $($field).on('input propertychange',function(){
// 實現
   }
}

 

3.把bindInputPropertychange加到bindAllEvents中

function bindAllEvents() {
	if (checkParam("autocompleteOff", true)) {
		removeAutocomplete();
	}

	bindFocusOut();
	bindKeyup();
	bindKeydown();
	bindKeypress();
	bindFocus();
	bindBlur();
    bindInputPropertychange();
}
相關文章
相關標籤/搜索