【问题标题】:jQuery lazyload stops loading when another javascript is fired当另一个 javascript 被触发时,jQuery 延迟加载停止加载
【发布时间】:2013-08-20 23:16:08
【问题描述】:

我知道如果没有我的很多源代码很难给出答案,但我想知道是否有人遇到过这个问题。这是我的延迟加载代码。

function displayLogo(merchant,merchantLogoId){
 $.getJSON("http://202.161.46.8:83/TGLWebService/logows/getBigLogo/"+merchant, function(data) {
      document.getElementById(merchantLogoId).innerHTML = ("<img class='lazy' src='img/icon/ImageLoading.jpg' data-original="+data.bigImageUrl+">");
      $('img.lazy').lazyload();
  }); 
}

当我运行我的网站并上下滚动并且延迟加载完美运行时,它运行良好。

问题发生在我最初启动网站时,即使我向下滚动也会加载前几张图像,但如果我说打开导航菜单,当我向上和向下滚动时,我的延迟加载停止工作,即不加载其余未加载的图像。

我尝试使用 $('img.lazy').lazyload();在 document.ready 中并移出 displaylogo 功能,但它根本不起作用,即当页面加载时,lazyloading 根本不起作用。

任何帮助将不胜感激。

【问题讨论】:

  • 您可以通过添加一个触发 ajax 调用或其他东西的按钮来确认这是一个 JS 问题(也许“警报”就足够了),并检查它是否确实阻止了您的延迟加载工作。这是一个很好的起点。
  • 我尝试了一个警报,它似乎并没有影响它,在更多的测试中,我意识到如果我打开一个弹出窗口等,它会产生相同的效果。
  • 同样的效果?它停止延迟加载?您是否尝试过模态和非模态对话框? (当您说弹出窗口时,我假设您的意思是对话框)。抱歉,暂时无法提供更多线索。
  • 您遇到问题的网页的网址?

标签: jquery jquery-lazyload


【解决方案1】:

尝试添加一个 .complete();到getJSON

例如

    $.getJSON('include/controllers/getCats.php', function(data) {
    jsonObj = data;
}).complete(function(){
       $('img.lazy').lazyload();

});

【讨论】:

    猜你喜欢
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多