JQM焦点文本字段将固定页脚移动到列表视图的底部

时间:2013-09-02 14:29:56

标签: jquery-mobile cordova jquery-mobile-listview

我有一个jqm / phonegap应用程序,它使用固定的页眉和页脚。 当我关注文本框时,页脚会被移除,键盘会弹出。

是否可以阻止页脚在焦点上移除?

编辑: 我已经读过屏幕宽度设置隐藏或显示工具栏(用于平板电脑支持)。是否可以始终设置标题和起泡器。无论屏幕大小如何。

这是我使用的页面示例(我使用ajax分页):

<html>
<body>
    <div data-role="page" id="myPage" data-theme="a">
        <div data-role="header" data-tap-toggle="false" data-theme="a" data-position="fixed">
            <h1 id="myHeader"></h1>
        </div>

            <div data-role="content">
                <ul data-role="listview" id="lstvw_Items" data-filter-theme="a" data-filter="true"></ul>
        </div>
        <div data-role="footer" data-tap-toggle="false" data-position="fixed">
            <div data-role="navbar">
                <ul>
                    <li><a href="index.html" data-icon="home"></a></li>
                    <li><a href="2.html" data-icon="grid"></a></li>
                    <li><a href="3.html" data-icon="info"></label></a></li>
                    <li><a href="4.html" data-icon="gear"><label></label></a></li>
                </ul>
            </div>
        </div>
    </div>
</body>
 </html>

listview get填充了ajax,可以使用数据过滤器进行过滤。如果我按下datafilter txtbox,页脚将被删除,当我关闭键盘时,页脚位于页面的底部。(在屏幕外)。

当焦点中有一个字段并按下一个链接时,页面会闪烁,当没有焦点时,它就不会发生。

首先,我使用iSCroll来保留固定的页眉和页脚,但这会产生很多其他问题。(使用键盘输入,性能,......)

额外信息:

我正在使用

  1. jqm 1.3.1
  2. phonegap 2.9.0
  3. 目前在android 2.3.x及更高版本上进行测试
  4. 编辑: 我已经弄明白为什么在按下输入时焦点永远不会丢失。应用程序阻止输入密钥行为以防止表单提交。 像这样:

        document.onkeypress = stopRKey;
        function stopRKey(evt){
           var evt = (evt) ? evt: ((event) ? event: null);
           var node = (evt.target) ? evt.target:((evt.srcElement) ? evt.srcElement:null);
           if((evt.keyCode == 13) && (node.type=='text')){node.blur();return false;}
    

    }

    我现在在此函数的if原因中使用node.blur();。但这仍然会导致闪烁。

1 个答案:

答案 0 :(得分:0)

我升级到jqm 1.3.2并修改了hideduringfocus的代码。

第9905行:

    $.widget( "mobile.fixedtoolbar", $.mobile.widget, {
    options: {
        visibleOnPageShow: true,
        disablePageZoom: true,
        transition: "none", //can be none, fade, slide (slide maps to slideup or slidedown)
        fullscreen: false,
        tapToggle: false,
        tapToggleBlacklist: "a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-popup, .ui-panel, .ui-panel-dismiss-open",
        hideDuringFocus: "",...

这似乎在Android上工作得很好,而且酒吧已停止闪烁。如果你知道一个不需要jquery修改的更好的答案,请发布它!