jQuery Autocomplete`select`仅在iPhone上第二次点击时触发

时间:2017-07-25 09:06:50

标签: javascript jquery iphone jquery-ui jquery-ui-autocomplete

问题当我在带有Safari(iOS10)的iPhone上使用jQuery自动完成功能时,我需要在触发jQuery之前点击搜索建议两次中的任何条目select事件。

限制:此问题在Android手机或台式机上发生

解决方案启动器:出于某种原因,官方jQuery demo在iPhone上工作就好了。所以它可能不是一个jQuery错误。

重现问题的步骤:

  1. 访问[示例不再可用。 AngularJS太慢了,我们用更快的技术代替它

  2. 在搜索字段中输入“Zu”

    enter image description here

  3. 点击任何搜索建议一次(该项目通过CSS直观触发,但JS事件不是)

  4. 再次点击相同的建议(一切正常)

  5. 相关的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事件?

0 个答案:

没有答案