我有一个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来保留固定的页眉和页脚,但这会产生很多其他问题。(使用键盘输入,性能,......)
额外信息:
我正在使用
编辑: 我已经弄明白为什么在按下输入时焦点永远不会丢失。应用程序阻止输入密钥行为以防止表单提交。 像这样:
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();
。但这仍然会导致闪烁。
答案 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修改的更好的答案,请发布它!