代码之家  ›  专栏  ›  技术社区  ›  Scott Hunter

jQuery移动列表视图('refresh')未完成增强

  •  1
  • Scott Hunter  · 技术社区  · 13 年前

    我有一个列表视图,显示得很好。我在其中添加了一个项目,使用的功能与我用来将原始项目放入其中的功能完全相同。如果我不刷新列表视图,新项目就不会得到增强(这并不奇怪)。但当我调用刷新时,增强是不完整的。

    以下是输入的项目:

    <li data-role="fieldcontain" id="flip-li-38">
      <div class="containing-element">
        <label for="flip-38">A B:</label>
        <select name="flip-38" id="flip-38" data-role="slider" data-mini="true">
          <option value="off">Absent</option>
          <option value="on">Present</option>
        </select>
      </div>
    </li>
    

    以下是增强后的项目:

    <li data-role="fieldcontain" id="flip-li-38" class="ui-li ui-li-static ui-body-c">
      <div class="containing-element">
        <label for="flip-38">A B:</label>
        <select name="flip-38" id="flip-38" data-role="slider" data-mini="true">
          <option value="off">Absent</option>
          <option value="on">Present</option>
        </select>
      </div>
    </li>
    

    但这是列表中最初的一项:

    <li data-role="fieldcontain" id="flip-li-37" class="ui-li ui-li-static ui-body-c ui-field-contain ui-body ui-br">
    <div class="containing-element">
      <label for="flip-37" id="flip-37-label" class="ui-slider">X Y:</label>
      <select name="flip-37" id="flip-37" data-role="slider" data-mini="true" class="ui-slider-switch">
        <option value="off">Absent</option>
        <option value="on">Present</option>
      </select>
      <div role="application" class="ui-slider ui-slider-switch ui-btn-down-c ui-btn-corner-all ui-slider-mini" style>
        <span class="ui-slider-label ui-slider-label-a ui-btn-active ui-btn-corner-all" role="img" style="width: 0%; ">Present</span>
        <span class="ui-slider-label ui-slider-label-b ui-btn-down-c ui-btn-corner-all" role="img" style="width: 100%; ">Absent</span>
        <div class="ui-slider-inneroffset">
          <a href="#" class="ui-slider-handle ui-btn ui-btn-up-c ui-shadow ui-btn-corner-all ui-slider-handle-snapping" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="c" role="slider" aria-valuemin="0" aria-valuemax="1" aria-valuenow="off" aria-valuetext="Absent" title="Absent" aria-labelledby="flip-37-label" style="left: 0%; ">
            <span class="ui-btn-inner ui-btn-corner-all">…</span>
          </a>
        </div>
      </div>
    </div>
    </li>
    

    以下是周围的环境:

        <div id="memberPage" data-role="page">
            <div data-role="content">
             <form>
                    <ul data-role="listview" data-filter="true" id="memberList"></ul>
                </form>
            </div><!-- /content -->
      </div>
    

    可能存在某种时间问题;我通过将部分增强的项目写入控制台来捕获它,但在调用刷新之前将其写入(如果我将调用保留为刷新,则会记录原始未增强的项目)。

    如果重要的话,项目是通过按钮的onclick属性从对话框添加的,该按钮链接回带有列表的页面(从而关闭对话框)。

    提前感谢您的任何见解。

    1 回复  |  直到 13 年前
        1
  •  0
  •   Pablo    13 年前

    尝试使用 $('#memberList').trigger('create'); 而不是 refresh listview的方法。我认为它可能会起作用,因为你不仅要增强新的列表项,还要增强其中的滑块。