【问题标题】:jquery mobile - listview widget is not displaying for dynamic contentjquery mobile - listview 小部件未显示动态内容
【发布时间】:2013-05-22 12:44:50
【问题描述】:

我有一个父列表 (ul-li),在单击列表中的 li 时,我正在创建新的子列表并将其添加到新页面。我第一次单独获得正确的 Jquery mobile 的子列表列表视图,如果我从父列表中单击相同的 li 或其他一些 li,则加载子列表时没有 JQM 的列表视图小部件。相反,它正在加载普通列表。

请找到 Jsfiddle 链接 - http://jsfiddle.net/gopijsf/BG2ZV/1/

HTML:

<div data-role="page" id="parentPage">
        <header data-role="header" data-theme="d">
            <h3>Parent</h3>
        </header>
        <div>               
            <ul id="sectionUlContainer" data-role="listview">
                <li><a href="#" class="sectionItemClass">List1</a></li>
                <li><a href="#" class="sectionItemClass">List2</a></li>
                <li><a href="#" class="sectionItemClass">List3</a></li>
                <li><a href="#" class="sectionItemClass">List4</a></li>
            </ul>
        </div>
        <footer data-role="footer" data-position="fixed" data-theme="b">
            <h3></h3>
        </footer>
    </div>

    <div data-role="page" id="childPage">
        <header data-role="header" data-theme="d">
            <h3>Child</h3>
            <a href="#parentPage">Back</a>
        </header>
        <div id="childList"></div>
    </div>

JS:

$(document).ready(function(){
$('.sectionItemClass').click(function(){
    var childWidget = '<ul id="childUlContainer" data-role="listview"><li>childList</li></ul>';
    $('#childList').html(childWidget);
    $.mobile.changePage('#childPage',{transition:'slide'});
});
});

帮助我如何每次重新加载 JQM 的列表视图。 提前致谢。

【问题讨论】:

    标签: jquery jquery-mobile jquery-mobile-listview


    【解决方案1】:

    使用此功能:

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

    工作示例:http://jsfiddle.net/Gajotres/LrAyE/

    在我的另一篇文章中了解更多信息:jQuery Mobile: Markup Enhancement of dynamically added content

    您的代码已修复:http://jsfiddle.net/Gajotres/uejY2/

    $(document).on('pageinit', '#parentPage', function(){     
        $(document).on('click','.sectionItemClass',function(){
            var childWidget = '<ul id="childUlContainer" data-role="listview"><li>childList</li></ul>';
            $('#childList').html(childWidget);
            $.mobile.changePage('#childPage',{transition:'slide'});
        });
    });
    
    $(document).on('pagebeforeshow', '#childPage', function(){       
        $('#childUlContainer').listview().listview('refresh')
    });
    

    【讨论】:

    • 谢谢我亲爱的朋友,现在它正在工作。我的问题的关键是 $(document).on('pagebeforeshow', '#childPage', function(){ $('#childUlContainer').listview().listview('refresh') });。非常感谢你:)
    • 如果这是您的答案,请接受。我很高兴为您提供帮助。
    猜你喜欢
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多