2

遇到一个奇怪的问题。这似乎是一个错误。

在 Jquery 移动列表中动态添加带有嵌套列表的列表项。现在-单击新列表项-打开新嵌套列表,但也打开它的显示-以前的嵌套列表项(添加新之前的最后一个嵌套列表项)

这是小提琴-

http://jsfiddle.net/codenameavi/qSrfv/13/

[使用浏览器后退按钮在小提琴中的嵌套和主列表之间导航]

使用此代码动态添加 -

$("#addBttn").click(function() {

      // adding a LI with Nested List in Main List
      var li = '<li data-icon="false" data-theme="a"><a>NEW ITEM</a>'

                 + '<ul data-role="listview" data-inset="true" data-theme="h" data-dividertheme="a">'
                     + '<li data-icon="false" data-theme="b">'
                     + '<a>NEW ITEM 1</a></li>'
                     + '<li data-icon="false" data-theme="b">'
                     + '<a>NEW ITEM 2</a></li>'          
                 + '</ul>'

               + '</li>';

    $("#newsListContent").append(li).trigger('create');
    $("#newsListContent").listview('refresh');
});

编辑

是的,它是一个错误。刚刚报告的问题 - https://github.com/jquery/jquery-mobile/issues/5098

该错误也存在于最新版本中。

4

2 回答 2

1

试试这个,它有效:
编辑:

var i=1;
$('#addBttn').click(function() {

     // adding a LI with Nested List in Main List
     var li = '<li data-icon="false" data-theme="a">NEW '+i+'</li>';
     $('#newsListContent').append(li);

    var ul = '<ul data-role="listview" data-inset="true" data-theme="h" data-dividertheme="a" id="ul_'+i+'">'
                     + '<li data-icon="false" data-theme="b">'
                     + 'NEW ITEM '+i+'</li>'
                     + '<li data-icon="false" data-theme="b">'
                     + 'NEW ITEM '+i+'</li>'          
                 + '</ul>';   
    $('#newsListContent li:last').append(ul).trigger('create');

    $('#newsListContent').listview('refresh');

    i++;
});

http://jsfiddle.net/ouadie/prZ9a/1/

于 2012-09-26T23:47:12.290 回答
0

这看起来是一个错误。

jQM 为您的 li 元素子锚标记添加一个索引号,这些标记与具有相同数据 URL 的隐藏页面相关。

发生的事情是新的 li 元素与列表中的最后一个 li 元素具有相同的编号,这反过来又导致两个页面彼此堆叠显示。

这是食物元素:

<a href="#list&amp;ui-page=newsListContent-0" class="ui-link-inherit">FOOD</a> 

请参阅附加在 href 中的索引 0,这与隐藏页面有关:

<div data-role="page" data-url="list&amp;ui-page=newsListContent-0" data-theme="d" data-count-theme="c" tabindex="0" class="ui-page ui-body-d">
    <div data-role="header" data-theme="b" class="ui-header ui-bar-b"
        role="banner">
        <div class="ui-title">FOOD</div>
    </div>
    <div data-role="content" class="ui-content" role="main">
        <ul data-role="listview" data-inset="true" data-theme="d"
            data-dividertheme="a"
            class="ui-listview ui-listview-inset ui-corner-all ui-shadow">
            <li data-icon="false" data-theme="a"
                class="ui-li ui-li-static ui-body-a ui-corner-top">FOOD ITEM 1</li>
            <li data-icon="false" data-theme="a"
                class="ui-li ui-li-static ui-body-a">FOOD ITEM 2</li>
            <li data-icon="false" data-theme="a"
                class="ui-li ui-li-static ui-body-a ui-corner-bottom">FOOD
                ITEM 3</li>
        </ul>
    </div>
</div>

具有相同的索引 0。添加新的 li 元素不会更改当前的 li 索引并复制已使用的 0 索引。

这是新的 li 元素(href 也指向 food li 元素)

<a class="ui-link ui-link-inherit" href="#list&amp;ui-page=newsListContent-0">NEW ITEM</a>

这是新的隐藏页面:

<div data-role="page" data-url="list&amp;ui-page=newsListContent-0" data-theme="h" data-count-theme="c" tabindex="0" class="ui-page ui-body-h">
    <div data-role="header" data-theme="b" class="ui-header ui-bar-b"
        role="banner">
        <div class="ui-title">NEW ITEM</div>
    </div>
    <div data-role="content" class="ui-content" role="main">
        <ul data-role="listview" data-inset="true" data-theme="h"
            data-dividertheme="a"
            class="ui-listview ui-listview-inset ui-corner-all ui-shadow">
            <li data-icon="false" data-theme="b"
                class="ui-btn ui-btn-up-b ui-btn-icon-right ui-li ui-corner-top"><div
                    class="ui-btn-inner ui-li ui-corner-top">
                    <div class="ui-btn-text">
                        <a class="ui-link-inherit">NEW ITEM 1</a>
                    </div>
                </div></li>
            <li data-icon="false" data-theme="b"
                class="ui-btn ui-btn-up-b ui-btn-icon-right ui-li ui-corner-bottom"><div
                    class="ui-btn-inner ui-li">
                    <div class="ui-btn-text">
                        <a class="ui-link-inherit">NEW ITEM 2</a>
                    </div>
                </div></li>
        </ul>
    </div>
</div>

即使您更新到最新版本,它仍然是一个问题:

我用 jQM 创建了一个新问题:

看起来这以前是一个问题,但由于您动态添加 li 元素,我创建了一个新问题

于 2012-09-27T12:32:53.180 回答