Javascript 在jquery.load()加载的容器上使用lazyload.js

Javascript 在jquery.load()加载的容器上使用lazyload.js,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正试图在一个用C#ASP.net编写的电子商务网站上实现lazyload.js。 我成功地(在社区的帮助下,顺便说一句)为产品列表正确设置了插件,但我还有一个“实时搜索框”,通过ajax.load()方法从.apsx页面加载列表。 问题是延迟加载无法在结果容器中工作。我尝试了所有的设置,但仍然没有运气。我加载结果容器的witch的结果页面实现了延迟加载,并且可以工作,但是在我加载ajax的容器中,图像不会被替换 这是加载搜索结果的代码(#srs是在搜索页面上保存产品列表的容器): $(“.se

我正试图在一个用C#ASP.net编写的电子商务网站上实现lazyload.js。 我成功地(在社区的帮助下,顺便说一句)为产品列表正确设置了插件,但我还有一个“实时搜索框”,通过ajax.load()方法从.apsx页面加载列表。 问题是延迟加载无法在结果容器中工作。我尝试了所有的设置,但仍然没有运气。我加载结果容器的witch的结果页面实现了延迟加载,并且可以工作,但是在我加载ajax的容器中,图像不会被替换

这是加载搜索结果的代码(#srs是在搜索页面上保存产品列表的容器):

$(“.search box inner”).keyup(函数(){
var uType=$(this.val();
uType=uType.replace(/\/g,'%20');
var myLength=$(this).val().length;
var url=“SearchLive.aspx?SearchTerm=”;
var div=“#srs”;
如果((我的长度>=3)){
$(“#搜索结果”)。向下滑动(“慢速”);
$(“#搜索结果”).load(url+uType+“”+div);
$(“.searchbox微调器”).fadeIn(“慢速”);
setTimeout(“$('.searchbox微调器”).fadeOut();”,1000);
}
如果(我的长度)
我试过一些东西,但没能打破低谷。 请帮助…

通过添加

$("#search-results").scroll(function(){ 
$("img.lazy").show().lazyload() 
}); 
在load()函数的末尾

$("#your-container").scroll(function(){
$("img.lazy").show().lazyload() 
});
因此,如果在不属于页面的容器中使用时,延迟加载行为不正常(也称为绝对或固定位置的容器,具有自己的滚动,不会触发滚动图像上的延迟加载),您可以通过在容器的滚动函数中初始化延迟加载插件手动触发它

$("#your-container").scroll(function(){
$("img.lazy").show().lazyload() 
});

如何调用lazyload?因为结果是通过load()动态加载的而lazyload在dom就绪后被初始化,我假设它不起作用,因为lazyload不知道新的映像。你试过了吗,在load回调中调用lazyload吗?是的,我试过在函数中调用它,但运气不好。现在我很尴尬…
$(“#搜索结果”).load(url+uType+“”+div,function(){console.log(“加载内容”);$(“img.lazy”).show().lazyload();//lazy init});
…成功了:)@差事这是可行的,但我仍然遇到了一个问题:插件会对页面上的滚动事件做出反应,但不会对容器上的滚动事件做出反应。它只加载第一个可见图像,但不会加载滚动上的其余图像,除非我向下滚动整个页面。我的容器绝对位于给定的60vh高度(我也尝试了固定高度)并且我将选项
container:$(“#搜索结果”)
传递给函数…@errad通过添加
$(“#搜索结果”).scroll(function(){$((“img.lazy”).show().lazyload());
在我的load()函数的末尾。
$("#your-container").scroll(function(){
$("img.lazy").show().lazyload() 
});