问题当我在带有Safari(iOS10)的iPhone上使用jQuery自动完成功能时,我需要在触发jQuery之前点击搜索建议两次中的任何条目select
事件。
限制:此问题在Android手机或台式机上发生 。
解决方案启动器:出于某种原因,官方jQuery demo在iPhone上工作就好了。所以它可能不是一个jQuery错误。
重现问题的步骤:
访问[示例不再可用。 AngularJS太慢了,我们用更快的技术代替它
在搜索字段中输入“Zu”
点击任何搜索建议一次(该项目通过CSS直观触发,但JS事件不是)
再次点击相同的建议(一切正常)
相关的JS代码:
$location
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
.autocomplete({
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
source: function(request, response){
search(request.term, response);
},
classes: {
'ui-autocomplete': 'mdl-shadow--4dp'
},
minLength: 2,
select: function(event, ui){
// Problem: On iPhone, only the second tap ends up here...
event.preventDefault();
searchDetails(ui.item.id);
}
})
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
.click(function(event, options){
//¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
this.select();
})
;
相关的HTML标记:
<div class="ui-widget">
<input class="mdl-textfield__input" type="text" id="location" value="">
<label class="mdl-textfield__label" for="location">Mein Standort</label>
</div>
如何在iPhone上进行此操作,只有一个点击足以触发JS事件?