好的,所以我有以下代码:
function() {
$("ul#postbit").load('load.php').fadeIn("slow");
}, 3000);
Run Code Online (Sandbox Code Playgroud)
我想要实现的是在加载load.php之后将结果添加到其中<li>并使其淡入.目前它会覆盖其中的内容ul#postbit.我只希望它能够加载新的结果并保留其中的内容.我希望这是有道理的.
该.load()方法旨在以这种方式工作,即将Ajax响应直接加载到您调用它的元素中.尝试使用其他Ajax方法之一,例如:
$.get("load.php", function(data) {
$(data).prependTo("#postbit").fadeIn("slow");
});
Run Code Online (Sandbox Code Playgroud)
这假设您的"load.php"返回包含li元素的html,当您说当前代码每次都覆盖现有列表时,这就是您所描述的内容.如果你的"load.php"只返回没有<li>标签的新li的内容,那么你可以创建li并在其前面添加:
$.get("load.php", function(data) {
$("<li/>").html(data).prependTo("#postbit").fadeIn("slow");
});
Run Code Online (Sandbox Code Playgroud)
编辑:要让它连续重新加载,你可以将上面的内容包装到你调用的函数中setInterval(),或者执行以下操作:
function getMoreData() {
$.get("load.php", function(data) {
$(data).prependTo("#postbit").fadeIn("slow");
}).complete(function() {
setTimeout(getMoreData, 3000);
});
}
getMoreData();
Run Code Online (Sandbox Code Playgroud)
这用于在3秒后setTimeout()安排另一次运行getMoreData(),但它在上一个请求完成后执行.