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();
}
相关文章
相关标签/搜索