Javascript 检查.ajax请求之后加载的所有图像?
我需要知道何时从附加的html源加载所有图像以执行另一个功能。我该怎么查呢Javascript 检查.ajax请求之后加载的所有图像?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我需要知道何时从附加的html源加载所有图像以执行另一个功能。我该怎么查呢 $(document).ready(function () { $('a.load-more').click(function (e) { e.preventDefault(); $.ajax({ type: "GET", url: $(this).attr('href'), data: { page: last_id
$(document).ready(function () {
$('a.load-more').click(function (e) {
e.preventDefault();
$.ajax({
type: "GET",
url: $(this).attr('href'),
data: {
page: last_id
},
dataType: "script",
success: function () {
$('.load-more').show();
}
});
});
});
我添加了如下html源代码:
$('.container').append('<%= escape_javascript(render(:partial => @items)) %>');
<ul class="container">
<%= render @items %>
</ul>
$('.container')。追加('@items))%>;
它成功地提供了html源代码,但我无法确定何时加载来自该源的所有图像
.每次单击链接时,容器都会更新
.container源如下所示:
$('.container').append('<%= escape_javascript(render(:partial => @items)) %>');
<ul class="container">
<%= render @items %>
</ul>
在所有支持事件捕获阶段的浏览器上,您可以为所有新添加的图像捕获onload事件:
document.addEventListener(
'load',
function(event){
var elm = event.target;
if( elm.nodeName.toLowerCase() === 'img' && $(elm).closest('.container').length && !$(elm).hasClass('loaded')){ // or any other filtering condition
console.log('image loaded');
$(elm).addClass('loaded');
if($('.container img.loaded').length === $('.container img').length) {
// do some stuff
console.log("All images loaded!")
}
}
},
true // Capture event
);
要支持不处理捕获阶段的IE8,您应该在DOM中添加特定图像后,将onload事件设置为特定图像,并在
script
onload事件中进行设置。何时发生append()
?它似乎与您正在进行的AJAX调用无关。它发生在单击链接时。它将重复多次。它是什么?AJAX调用,还是追加?append与AJAX调用有什么关系?在这里,查看更完整的代码示例会有很大帮助。您需要支持IE8吗?@a.Wolff谢谢!在我在其他地方工作之后:)我应该检查附加的html源上的每个图像吗?这将是他们的恐惧…onload事件将捕获任何图像。我不太明白你的问题?编辑:好的,我明白你的意思了。我需要知道从附加html加载所有图像的时间。
所以,你应该计算附加html中的所有图像,并设置一个计数器,在加载所有图像后进行检查。我认为你是天才!非常感谢。将要实现:)我在本地主机控制台中加载了“所有映像”,但无法进入生产服务器。你知道为什么吗?这是生产示例——点击“Rodyti daugiau”有时有效,但有时刷新页面无效。。有趣!