我有一个带有面板的小任务查看器,您可以在其中创建任务,无论如何,我遇到的问题是,当您在移动设备上向下滚动面板时,它会回到顶部,因此您需要再次向下滚动才能单击所需的输入, 当您完成填写(或不填写(输入并尝试单击后退按钮关闭键盘时,它会再次回到顶部。
我试图使用.focus
但它忽略了它。
为什么会这样?我该如何解决它?任何帮助都真诚地感谢。
单击加号按钮打开面板
PS:我清理了代码以专注于问题
我的代码:
#header {
background-color: #72a9dc;
text-shadow: 0 0 3px #000;
color: white;
}
.code {
background-color: #b4d0ec;
text-shadow: 0 0 1px #fff;
border-radius: 3px;
width: 30px;
text-align: center;
float: left;
}
.label {
margin-left: 10px;
text-align: center;
float: left;
}
.date {
float: right;
border-radius: 3px;
border: 1px solid #000;
width: 100px;
height: 20px;
text-align: center;
text-shadow: 0 0 0 #fff;
color: black;
}
.detail {
font-size: 20px;
color: #72a9dc;
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
</head>
<body>
<div id="header" data-role="header" style="overflow:hidden;" data-position="fixed" data-tap-toggle="false">
<h1>Title</h1>
<a onclick="onTop();" data-icon="search" data-iconpos="notext">Search</a>
<a onclick="newTask();" id="newTask" href="#add-form" data-icon="plus" data-iconpos="notext">Add</a>
</div>
<div role="main" class="ui-content jqm-content jqm-fullwidth">
<form class="ui-filterable" id="search">
<input id="rich-autocomplete-input" data-type="search" placeholder="Search. . .">
</form>
<ul id="list" data-role="listview" data-filter="true" data-inset="true" data-input="#rich-autocomplete-input">
</ul>
</div>
<div data-role="panel" data-position="right" data-display="reveal" data-theme="a" id="add-form">
<form class="userform">
<h2 id="myTitle"></h2>
<label>Code:</label>
<input type="number" id="code" min="1" value="" data-clear-btn="false" data-mini="true">
<label>Label:</label>
<input type="text" id="label" maxlength="20" value="" data-clear-btn="true" autocomplete="off" data-mini="true">
<label>Date:</label>
<input type="date" id="date" value="" data-clear-btn="true" data-mini="true">
<label>Code:</label>
<input type="number" id="code" min="1" value="" data-clear-btn="false" data-mini="true">
<label>Label:</label>
<input type="text" id="label" maxlength="20" value="" data-clear-btn="true" autocomplete="off" data-mini="true">
<label>Date:</label>
<input type="date" id="date" value="" data-clear-btn="true" data-mini="true">
<label>Code:</label>
<input type="number" id="code" min="1" value="" data-clear-btn="false" data-mini="true">
<label>Label:</label>
<input type="text" id="label" maxlength="20" value="" data-clear-btn="true" autocomplete="off" data-mini="true">
<label>Date:</label>
<input type="date" id="date" value="" data-clear-btn="true" data-mini="true">
<label>Code:</label>
<input type="number" id="code" min="1" value="" data-clear-btn="false" data-mini="true">
<label>Label:</label>
<input type="text" id="label" maxlength="20" value="" data-clear-btn="true" autocomplete="off" data-mini="true">
<label>Date:</label>
<input type="date" id="date" value="" data-clear-btn="true" data-mini="true">
<label>Code:</label>
<input type="number" id="code" min="1" value="" data-clear-btn="false" data-mini="true">
<label>Label:</label>
<input type="text" id="label" maxlength="20" value="" data-clear-btn="true" autocomplete="off" data-mini="true">
<label>Date:</label>
<input type="date" id="date" value="" data-clear-btn="true" data-mini="true">
<div class="ui-grid-a">
<div class="ui-block-a"><a href="#" data-rel="close" class="ui-btn ui-shadow ui-corner-all ui-btn-b ui-mini">Cancel</a>
</div>
<div class="ui-block-b"><a href="#" data-rel="close" class="ui-btn ui-shadow ui-corner-all ui-btn-a ui-mini" onclick="addTask();">Save</a>
</div>
</div>
</form>
</div>
</body>
</html>
而不是使用可能导致页面实际转到顶部的href="#"
,因为#是一个有效的链接,你可以(并且应该(使用href="javascript:void(null);"
它只是一个空的javascript函数,它将确保你的按钮不会做任何其他事情。
希望有帮助。