首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery load()和.prepend()

JQuery load()和.prepend()
EN

Stack Overflow用户
提问于 2012-07-11 21:19:08
回答 2查看 6.6K关注 0票数 1

好的,我有以下代码:

代码语言:javascript
复制
function() { 
$("ul#postbit").load('load.php').fadeIn("slow");
}, 3000);

我试图实现的是在加载load.php之后,将结果预先添加到<li>中,并使其淡入。目前,它会覆盖ul#postbit中的内容。我只想让它加载新的结果,并保留其中的内容。我希望这是有意义的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-11 21:23:13

.load()方法就是这样设计的,即将Ajax响应直接加载到您调用它的元素中。请尝试使用其他Ajax methods之一,例如:

代码语言:javascript
复制
$.get("load.php", function(data) {
    $(data).prependTo("#postbit").fadeIn("slow");
});

这假设您的"load.php“返回包含li元素的html,这似乎就是您每次说当前代码覆盖现有列表时所描述的内容。如果您的"load.php“只返回没有<li>标记的新li的内容,那么您可以创建li并将其放在前面:

代码语言:javascript
复制
$.get("load.php", function(data) {
    $("<li/>").html(data).prependTo("#postbit").fadeIn("slow");
});

编辑:要让它持续重新加载,您可以将上面的代码封装到使用setInterval()调用的函数中,或者执行以下操作:

代码语言:javascript
复制
function getMoreData() {
    $.get("load.php", function(data) {
        $(data).prependTo("#postbit").fadeIn("slow");
    }).complete(function() {
        setTimeout(getMoreData, 3000);
    });
}
getMoreData();

它使用setTimeout()在3秒后安排另一次getMoreData()运行,但它是在前一次请求完成之后执行的。

票数 9
EN

Stack Overflow用户

发布于 2012-07-11 21:24:44

您应该检查一下jQuery应用程序接口。下面是AJAX的API:http://api.jquery.com/category/ajax/

代码语言:javascript
复制
$.ajax({
    url: 'load.php',
    success: function(data) {
        $("ul#postbit").prepend('<li>'+ data +'</li>');
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11433581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档