0

我有这个 JS 代码,用于在单击时显示每个动态加载的帖子:

    function showPost(id) {
    $.getJSON('http://hopeofgloryinternational.com/?json=get_post&post_id=' + id + '&callback=?', function(data) {
        var output='';
        output += '<h3>' + data.post.title + '</h3>';
        output += data.post.content;
        $('#mypost').html(output);
    }); //get JSON Data for Stories
} //showPost

当我在手机或 Windows 浏览器上测试页面“ http://howtodeployit.com/devotion/ ”时,单击“每日灵修消息”并在每个帖子之间导航时,我注意到之前访问过的帖子仍然会在新帖子之前显示几秒钟帖子被显示。

如何刷新页面或 DOM 以清除以前访问的页面。

4

3 回答 3

4

empty()单击项目或单击后退按钮时仅显示 myPost 的内容。原因是您以前的内容仍然存在于mypostdiv 中,并且您的内容页面甚至在执行 ajax 调用之前就变得可见,这可能需要一些时间才能完成,比如 700 毫秒,因此您将在很长一段时间内看到旧内容。

function showPost(id) {

 var $myPost = $('#mypost').empty(); //emtpy it

 $.getJSON('http://hopeofgloryinternational.com/?json=get_post&post_id=' + id + '&callback=?', function(data) {
    var output='';
    output += '<h3>' + data.post.title + '</h3>';
    output += data.post.content;
    $myPost.html(output);
}); //get JSON Data for Stories
于 2013-10-07T05:02:40.943 回答
2

函数以一行开始,$('#mypost').html("");然后再去另一个请求清除显示内容。

您还可以$('#mypost').html("Please wait...");在显示下一个请求的内容之前添加等待消息。

function showPost(id) {

    $('#mypost').html(""); //add this line

    //$('#mypost').html("Please wait..."); //also you can add it to show waiting message.

    $.getJSON('http://hopeofgloryinternational.com/?json=get_post&post_id=' + id + '&callback=?', function(data) {
        var output='';
        output += '<h3>' + data.post.title + '</h3>';
        output += data.post.content;
        $('#mypost').html(output);
    }); //get JSON Data for Stories

}
于 2013-10-07T05:04:31.510 回答
0

你可以清空() $mypost

 var $myPost = $('#mypost').empty();
于 2013-10-07T05:05:22.777 回答