好了,所以我有以下代码:的JQuery load()和.prepend()
function() {
$("ul#postbit").load('load.php').fadeIn("slow");
}, 3000);
我所试图实现的是装载load.php后预先设置导致对<li>
并让它褪色目前它会覆盖ul#postbit
中的内容。我只希望它能够加载新的结果并保留内部的内容。我希望这是有道理的。
好了,所以我有以下代码:的JQuery load()和.prepend()
function() {
$("ul#postbit").load('load.php').fadeIn("slow");
}, 3000);
我所试图实现的是装载load.php后预先设置导致对<li>
并让它褪色目前它会覆盖ul#postbit
中的内容。我只希望它能够加载新的结果并保留内部的内容。我希望这是有道理的。
方法被设计为以这种方式工作,即将Ajax响应直接加载到您调用它的元素中。尝试,而不是使用其他Ajax methods之一,例如:
$.get("load.php", function(data) {
$(data).prependTo("#postbit").fadeIn("slow");
});
这里假设你的“load.php”返回的HTML包括li元素,这是你仿佛被描述时,你说你当前的代码将覆盖现有的列表每一次。如果你的“load.php”新里只返回内容不<li>
标签,那么你可以创建Li和预置它:
$.get("load.php", function(data) {
$("<li/>").html(data).prependTo("#postbit").fadeIn("slow");
});
编辑:有它不断刷新你可以在上面封装成函数你有setInterval()
打电话,或做这样的事情:
function getMoreData() {
$.get("load.php", function(data) {
$(data).prependTo("#postbit").fadeIn("slow");
}).complete(function() {
setTimeout(getMoreData, 3000);
});
}
getMoreData();
这使用setTimeout()
安排的getMoreData()
3秒后另一个运行,但它以前的请求完成打完。
您应该查看jQuery API。这里是AJAX的API:http://api.jquery.com/category/ajax/
$.ajax({
url: 'load.php',
success: function(data) {
$("ul#postbit").prepend('<li>'+ data +'</li>');
}
});
这就是我一直在寻找的感谢。最后一件事,我怎样才能让它每隔3秒不断加载文件? – Sygon 2012-07-11 13:31:59
使用setTimeout()是最好的方法吗?或者是有更好的解决方案 – Sygon 2012-07-11 13:36:55
我会使用'setTimeout()'。有几种方法可以做到这一点 - 我已经用一种方式更新了我的答案。 – nnnnnn 2012-07-11 13:41:55