我有一个能够通过 ajax 加载更多内容的图像列表。默认情况下,列表中会加载图像。当用户滚动时,另外 4 个项目被添加到列表中。该列表每 15 秒通过 ajax 刷新一次,仅替换列表中的前 7 个项目。问题是当 4 个新项目添加到列表中时,选择器似乎忽略了这些项目,因此它不会从 0 索引中进行选择。
我知道这听起来令人困惑,所以我将尝试通过一个简单的示例进行演示。
前任
$(function () {
// Update ChannelStats
setTimeout(function () {
var refresh = setInterval(UpdateChannels, 15000);
UpdateChannels();
}, 15000);
function UpdateChannels() {
$.ajax({
type: "POST",
url: "ajax/ImageList.aspx/UpdateImages",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
// Newest
var $newestResults = $('#newest .pcVideomaincontainer:lt(7)');
$newestResults.fadeOut('slow'), function () {
remove()
};
$.each($newestResults, function (index, value) {
$(this).delay(index * 250).animate({
opacity: 0
}, 250,
function () {
$(this).remove();
$('#pcContentHolder_newest').append(data.d.Newest.HtmlChannelSegments[index]);
});
});
});
}
});
[注意数字的顺序-这是加载图像的顺序]
在初始页面加载时,第一个图像被加载
1.在初始页面加载时加载以下图像
1 2 3 4 5 6 7
2.当用户滚动显示剩余的图像时
1 2 3 4 5 6 7 8 9 10 11
3.更新脚本第一次运行
8 9 10 11 1 2 3 4 5 6 7
4.更新脚本第二次运行
4 5 6 7 1 2 3 4 5 6 7
5.每次更新脚本运行的顺序是
4 5 6 7 1 2 3 4 5 6 7
据我所知,这 4 个新添加的元素未包含在
$('#newest .pcVideomaincontainer:lt(7)')
选择中。我不确定在这种情况下如何使用“live”,或者是否有其他技术。