4

所以,我有这个<div>,其中包含我的博客文章。它的类是.post. 我想要做的是,每次有人在小部件区域点击最近的帖子时,内容都是通过 Ajax 加载的,而不是刷新页面。

这是我的代码

jQuery(function()
{
    jQuery(".umrp-list li a").click(function(){ //here I select the links of the widget
        var post_url = jQuery(this).attr("href");
        jQuery(".post").html('<div class="loading">Loading Content...</div>');
        jQuery(".post").load(post_url);
        return false;
    });
});

所以我有两个问题

  1. 每当我点击“最近的帖子”链接时,内容就会加载到我想要加载的位置,但我的网页在点击后空闲/冻结了大约 2 秒。为什么会这样?

  2. 当我第一次单击时,除了我上面描述的细节之外,一切正常。当我第二次单击(另一个链接甚至相同)时,它不会加载我单击的帖子,而是将我的整个网页加载到该.post容器上。任何想法为什么会发生这种情况?

4

2 回答 2

1

听起来您正在同步发送请求。同步操作是阻塞的,而异步操作允许 UI 继续运行,同时操作在幕后完成。

至于第二个问题,听起来 jQuery(this) 以某种方式指向文档而不是元素的上下文。第二次检查您的“this”值,它可能会为您提供一些见解。

于 2013-05-23T17:41:38.993 回答
0

所以问题是在single.php(存储博客文章模板的地方),我忘了擦除<?php get_header(); ?><?php get_footer(); ?>现在一切都很好!

于 2013-05-23T18:05:14.497 回答