我正在使用jquery 1.9.1 js和jquery mobile 1.3.2 css和js。
我有一个带有长选择框的页面,有20个项目。 当我打开选择框时,选择一些项目并再次关闭它,我最终得到一个空白页面。
有人有这个问题吗?
使用jquery mobile 1.3.1时,第二次打开时出现了选择框为空的问题,但这并没有改进。
编辑:
这是我页面上的代码:
<div data-role="page" id="new_agent_edit" data-theme="d" qs="">
<div data-role="header" data-theme="b">
<h1>New Agent Edit</h1>
</div>
<div id="new_agent_editContent" data-role="content">
<div>
<h2 style="display:inline">Agent #Test Agent</h2><br/>
</div>
<div>
<form id="frmAgentNewEdit" name="frmAgentNewEdit">
<div data-role="fieldcontain">
<label for="new_agent_editsubscribers" class="select">Publishes To:</label>
<select name="subscribers" id="new_agent_editsubscribers" data-native-menu="false" multiple="multiple">
<option data-placeholder="true">Choose Agents...</option>
<option value="1">#1 SMS Message (inactive)</option>
<option value="2">#2 Weather Update (inactive)</option>
<option value="3">#3 Stock Update (active)</option>
<option value="4">#4 Email Notification (inactive)</option>
<option value="5">#5 Digest Email (inactive)</option>
<option value="6">#6 Word Cloud (inactive)</option>
<option value="7">#7 Time Series (active)</option>
<option value="8">#8 Google News Sentiment Analysis (active)</option>
<option value="9">#9 Google Nieuws (active)</option>
<option value="10">#10 Twitter (active)</option>
<option value="11">#11 Time Series (inactive)</option>
<option value="12">#12 Time Series (inactive)</option>
<option value="13">#13 twitterstream: Sentiment Analysis (active)</option>
<option value="14">#14 Weather (inactive)</option>
<option value="15">#15 Read Email (inactive)</option>
<option value="16">#16 Stock (inactive)</option>
<option value="17">#17 it-ebooks: Last Update eBooks (inactive)</option>
<option value="18">#18 Dilbert (inactive)</option>
<option value="19">#19 Marktplaats aanbiedingen (inactive)</option>
</select>
</div>
</form>
</div>
</div>
</div>
这里有两个截图:
答案 0 :(得分:1)
自己解决
弹出窗口是从包含pagebeforeshow事件的页面打开的。 此事件包含页面的初始化代码。 每次弹出窗口关闭时,都会再次触发此事件,从而触发初始化代码,从而导致中断。
通过使初始化代码的执行成为条件,我解决了这个问题:
$('#edit_agent').on('pagebeforeshow', function(event, data) {
if ( data.prevPage.attr('id') !== 'new_agent_editsubscribers-dialog') {
// initialisation code
...
...
}
});
答案 1 :(得分:0)
通常,当数字项高于屏幕高度时,弹出窗口将成为新页面。下拉列表打开后隐藏调用者页面(现在是上一页)。
在您的情况下,下拉列表关闭后,似乎上一页不再有效。如果可能,尝试强制调用者页面处于活动状态。
正如卡特所说,如果你发布一些代码会很棒。
干杯,
答案 2 :(得分:0)
我通过将选择列表创建代码移动到pagecreate
事件来解决它:
$("#page_id").on("pagecreate", function (e) {
//select list creation code here
});