使用jquery mobile刷新div

时间:2012-02-23 08:27:50

标签: jquery-mobile cordova refresh

我正在使用phongap和jquery mobile来构建一个应用程序,该应用程序应该使用JSON列出wordpress博客中的最​​新帖子,然后允许您单击该文章,然后转到显示完整帖子的页面。 我的代码可以列出所有文章,但问题是应该在div中显示完整文章的代码不起作用。 我有以下代码:


<html>       
<link href="jquery-mobile/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css"/>
<script src="jquery-mobile/jquery-1.5.min.js" type="text/javascript"></script>
<script src="jquery-mobile/jquery.mobile-1.0a3.min.js" type="text/javascript"></script>
<script src="phonegap.js" type="text/javascript"></script>

<script>
function onBodyLoad(){    
    document.addEventListener("deviceready",onDeviceReady,false); }  

$(function(){
    $.ajax({
        url: "http://blog.smartapplications.co.zw/?json=get_recent_posts",
        dataType: 'jsonp',
        success: function(json_results){
            console.log(json_results);
            // Need to add UL on AJAX call or formatting of userlist is not displayed
            $('#blogList').append('<ul data-role="listview" data-inset="true" data-theme="d" data-divider-theme="e" data-count-theme="b"></ul>');
            listItems = $('#blogList').find('ul');
            $.each(json_results.posts, function(key) {
                html = '<h3><a href="#post_id_'+json_results.posts[key].id+'">'+json_results.posts[key].title+'</a></h3>';


                listItems.append('<li>'+html+'</li>');
            });
            // Need to refresh list after AJAX call
            $('#blogList ul').listview();

            $.each(json_results.posts, function(key){
                    div_html='<div data-role="page" id="#post_id_'+json_results. posts[key].id+'"><div data-role="header"><h1>'+json_results. posts[key].title +'</h1></div><div data-role="content ">'+json_results. posts[key].text+'</div></div>';
                    $('#content_blog').html(div_html);
                    });

        }
    });
})

</script>

</head> 
<body onload = "onBodyLoad();"> 
<div data-role="page" id="page">
    <div data-role="header">
        <h1>Home</h1>
    </div>
    <div data-role="content">   
        <ul data-role="listview">
            <li><a href="#page1">Latest Articles</a></li>
        </ul>       
    </div>

</div>

<div data-role="page" id="page1">
    <div data-role="header">
        <h1>Latest Articles</h1>
    </div>
    <div data-role="blog_content" style="padding:0px;"> 
    <div id="blogList"></div>
    </div>  
</div>



<div id="content_blog" data-role="slider">  
</div>  
</div>
</body>
</html>

2 个答案:

答案 0 :(得分:3)

尝试做

$('#blogList ul').listview("refresh");

而不是

$('#blogList ul').listview();

答案 1 :(得分:0)

你做错了!在这里:

  $('#blogList').append('<ul data-role="listview" data-inset="true" data-theme="d" data-divider-theme="e" data-count-theme="b"></ul>');

你关闭然后你正在添加

 listItems.append('<li>'+html+'</li>');

<li>应位于<ul>代码内。