Jquery Mobile问题有长选多选项和data-native-menu =“false”

时间:2013-08-04 20:33:09

标签: jquery mobile drop-down-menu

我正在使用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>

这里有两个截图:

Open selectbox Close selectbox

3 个答案:

答案 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
});