iscroll4防止键盘在外部输入(android/ios)上聚焦显示

iscroll4 prevents keyboard display on focus on an extern input (android/ios)

本文关键字:ios 显示 聚焦 android 键盘 输入 外部 iscroll4      更新时间:2023-09-26

我在安卓(2.2/2.3和ios)上使用iScroll时遇到问题

我有一个代码,看起来像:

<input id = "thing" val=""/>
    <div id="scroller" style="overflow:auto; height:150px;">
        <ul>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
            <li><a class="thing">thing</a></li>
        </ul>
    </div>
    <a class="thing">thing</a>

和js:

$( document ).ready( function(e) {
    var testScroll = new iScroll('scroller', {vScrollbar: false});
    $('a.thing').on('click', function(){$('#thing').focus();});
};

当我点击单独的链接时,我会把重点放在#thing输入上,然后出现软键盘。当我点击滚动条中的那些时,会给出焦点,但键盘不会出现。

我真的不明白这里什么不管用。我想让键盘出现。

edit:我正在使用jquery mobile,如果这对我有帮助的话。

尝试判断目标是否是输入元素,修改iscroll.js:中的"_start"函数

_start: function (e) {
    var that = this,
    point = hasTouch ? e.changedTouches[0] : e,
    matrix;
    that.moved = false;
    if ( e.target.tagName == "SELECT" || e.target.tagName == "INPUT"
        || e.target.tagName == "BUTTON" || e.target.tagName == "TEXTAREA") {
        return true;
    }
    e.preventDefault();
    // more codes here
}