Jquery mobile JQuery Mobile-如果动态添加内容,刷新后可扩展Listview无法正常工作

Jquery mobile JQuery Mobile-如果动态添加内容,刷新后可扩展Listview无法正常工作,jquery-mobile,Jquery Mobile,当我通过jquery代码添加项目时,jquery mobile listview出现问题 如果我将以下添加到页面,并让“正常”页面处理发生,我的列表将正确显示,并带有可扩展的子列表等 <ul data-role="listview" id="Ul2" class="ui-listview-outer ui-listview ui-listview-inset ui-corner-all ui-shadow" data-inset="true"> <li data-role="c

当我通过jquery代码添加项目时,jquery mobile listview出现问题

如果我将以下
    添加到页面,并让“正常”页面处理发生,我的列表将正确显示,并带有可扩展的子列表等

    <ul data-role="listview" id="Ul2" class="ui-listview-outer ui-listview ui-listview-inset ui-corner-all ui-shadow" data-inset="true">
    <li data-role="collapsible" data-iconpos="right" data-shadow="false" data-corners="false" data-icon="plus">
        <h2 vid="CA175191-FA4D-4F2A-AAA7-2898971AB0F4">Parent 1</h2>
        <ul data-role="listview" data-shadow="false" data-inset="true" data-corners="false">
            <li data-role="collapsible" data-iconpos="right" data-shadow="false" data-corners="false">
                <h2 vid="65E74F52-54E6-4A84-B4AC-F24E638FE559">Sub 1</h2>
                <ul data-role="listview" data-shadow="false" data-inset="true" data-corners="false">
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                </ul>
            </li>
            <li data-role="collapsible" data-iconpos="right" data-shadow="false" data-corners="false">
                <h2 vid="86628CD0-87BD-4649-8899-1029AD38DD9C">Sub 2</h2>
                <ul data-role="listview" data-shadow="false" data-inset="true" data-corners="false">
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                </ul>
            </li>
            <li data-role="collapsible" data-iconpos="right" data-shadow="false" data-corners="false">
                <h2 vid="12C6A457-EEA1-47A0-A63D-3222DF3069F2">Sub 2</h2>
                <ul data-role="listview" data-shadow="false" data-inset="true" data-corners="false">
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                    <li><a href="#" vid="367806EA-493F-45BB-BAC9-DF11E946E21A">Child</a></li>
                </ul>
            </li>
        </ul>
    </li>
    <li data-iconpos="right" data-shadow="false" data-corners="false" data-icon="plus">
        <h2 vid="864FCB4E-98A1-4C0C-9421-E89F5C5423A6">Parent 2</h2>
    </li>
    </ul>
    
    列表的行为不同

  • 列表在页面上的物理显示方式不同
  • 当单击“父1”时,它将重定向页面,以显示一个列表,其中“子1”作为列表的标题,以及4个空列表项,而不是展开显示“子1”
  • 我不知道下一步该怎么办。是否还有其他步骤可以刷新我的列表。或者我给元素添加了一些不正确的类

    下面是我试图在列表和子列表中显示的JSON,它稍微简化了一点,因此可能有额外的方括号,似乎没有必要-它以XML开始,并在返回到客户端之前从服务器端转换为JSON:

    {
        "parents":
        {
            "parent":
            [{
                "parName": "Parent 1", "parID": "CA175191-FA4D-4F2A-AAA7-2898971AB0F4",
                "subs":
                {
                    "sub":
                    [{
                        "group_Name": "Sub 1", "group_ID": "65E74F52-54E6-4A84-B4AC-F24E638FE559",
                        "children":
                        {
                            "child":
                            [
                            { "vID": "367806EA-493F-45BB-BAC9-DF11E946E21A", "dispName": "Child 1" },
                            { "vID": "4DE698E0-E395-4FF9-9F74-E8679B992AED", "dispName": "Child 2" },
                            { "vID": "747EF952-C565-41C6-AF96-B7192AD3599A", "dispName": "Child 3" },
                            { "vID": "5BDD8BD5-27E3-4E71-9C02-7E41CADF327E", "dispName": "Child 4" }
                            ]
                        }
                    }]
                }
            }]
        }
    }
    

    谢谢

    ,所以将我的JQM版本升级到1.4.5,并在父div上使用
    .enhanceWithin()
    ,而不是使用
    .listview(“刷新”)
    解决了我的问题


    感谢@Omar为我指明了正确的方向。

    如果在listview中使用listview,它们将转换为嵌套的listview。嵌套的listview重定向到包含子listview内容的新页面。@Omar这是有道理的,但为什么它的行为会有所不同,这取决于它是动态添加并刷新的,还是只是最初添加到html中的?如何使动态添加的元素显示和行为相同?我想这取决于您何时增强元素。可以提供数据的JSON示例吗?@Omar我在JSON示例中添加了。如果有一种简单的方法可以说将json对象转储到列表中,并以某种方式让框架/库处理它,那就更好了。类似这样的东西太棒了:$('ul').loadJSON(jsonObj)<代码>Ul2也是动态的还是静态的?
    $('ul').listview("refresh")
    
    {
        "parents":
        {
            "parent":
            [{
                "parName": "Parent 1", "parID": "CA175191-FA4D-4F2A-AAA7-2898971AB0F4",
                "subs":
                {
                    "sub":
                    [{
                        "group_Name": "Sub 1", "group_ID": "65E74F52-54E6-4A84-B4AC-F24E638FE559",
                        "children":
                        {
                            "child":
                            [
                            { "vID": "367806EA-493F-45BB-BAC9-DF11E946E21A", "dispName": "Child 1" },
                            { "vID": "4DE698E0-E395-4FF9-9F74-E8679B992AED", "dispName": "Child 2" },
                            { "vID": "747EF952-C565-41C6-AF96-B7192AD3599A", "dispName": "Child 3" },
                            { "vID": "5BDD8BD5-27E3-4E71-9C02-7E41CADF327E", "dispName": "Child 4" }
                            ]
                        }
                    }]
                }
            }]
        }
    }