动态内容在jQuery Mobile中无法正常显示

时间:2012-09-09 12:43:10

标签: jquery cordova jquery-mobile jquery-selectors

我有一个移动应用程序,我正在使用PhoneGap和jQuery Mobile构建。当用户单击链接时,应用程序从SQLite数据库中获取动态内容。使用jQM的可折叠集(手风琴)格式化数据。这是代码。

用户导航到正确页面的菜单:

<!-- data-role="page" id="mainmenu" -->
<ul data-role="listview" data-theme="c">
  <li><a id="news_link" href="#"> News</a></li>
  <li><a id="news_link" href="#"> Jokes</a></li>
  <li><a id="news_link" href="#"> Rumours</a></li>
</ul>

<!-- data-role="page" id="mainmenu" -->
<div data-role="page" id="news" data-title="AreApp News" data-theme="c">
    <div data-role="header" data-theme="c"></div><!-- /header -->
    <div id="newscontent" data-role="content" data-content-theme="c"></div>
    <div data-role="footer"></div>
</div>

下面我通过点击的元素的id使用click事件检测,并调用数据库加载函数,该函数获取并将内容放入正确的div。

$(function() {
    $('#news_link').click(function(){ // event handler of newslink
        loadNewsFromDB(function(){
            $.mobile.changePage( $("#news"), { transition: "slideup"} 
         );
    });
});

function loadNewsFromDB(callback){
    //DB-logic and html code generation here....
    $(htmlStr).appendTo( "#newscontent" ).trigger( "create" );
    $("#newscontent").html(htmlStr);
}

当我第一次点击链接时,逻辑非常有效。但当我把手机的“后退”按钮放回主菜单并再次点击链接时,内容格式不正确。我的意思是它显示了新闻,但格式不好,因为它应该使用可折叠集,但事实并非如此。

我试图通过将函数的使用绑定到

来使用jQuery的remove()和empty()函数来清除内容
$(document).bind( "pagebeforechange", function( e, data ) {
    var obj = $.mobile.path.parseUrl( data.toPage );
    if(obj.hash=="#mainmenu"){
        $('#news-collapsible').empty().remove();
    }
});

但没有结果。我对这个挑战非常感兴趣,如果有人告诉我去哪里,我会深深感激。

1 个答案:

答案 0 :(得分:0)

您需要刷新此可折叠集。

$('#newscontent').collapsibleset('refresh');