【问题标题】:Why jQuery tries to load an image more than one time?为什么 jQuery 会多次尝试加载图像?
【发布时间】:2016-03-28 18:25:12
【问题描述】:

我想加载一张图片,在完全加载之前想要如果发生任何错误并且无法加载它,只需做一些工作。

第一次,它工作正常。但是第二次当我想再次加载另一个图像并且它不可用时,它会尝试重复加载。

我用过:

jQuery JavaScript Library v1.11.1

我的代码有什么问题?

$("#av-1").load(function () {
    $("#av-1").attr('src', imagePath);
    $("#av-1").attr('alt', title);
}).attr('src', imagePath).error(function () {  

});

更新:

我将代码更新为:

 try {
    $("#av-1").load(function () {
        $("#av-1").attr('src', imagePath);
    }).attr('src', imagePath).error(function () {
        try {
        }
        catch (err) {
            alert(err.message);
        }
    });
}
catch (err) {
    alert(err.message);

}

但是没有发生错误:(

【问题讨论】:

  • 如果“#av-1”是您的图像标识符,那么每当您尝试加载时都可能会触发此事件。进一步的代码或逻辑将有助于调试。
  • 你能解释一下吗

标签: jquery image load


【解决方案1】:

如果您使用jQuery.one,则处理程序将最多执行一次,每个事件类型的每个元素。这将阻止您的循环发生。

$("#av-1").one('load', function () {
    $("#av-1").attr('src', imagePath);
    $("#av-1").attr('alt', title);
}).attr('src', imagePath).error(function () {  
    // Log errors...
});

【讨论】:

  • 我在错误函数中使用 try catch 没有发生错误
  • 你能不能详细点,我不明白你的意思。
  • 为什么要将整个$.load 调用封装在try-catch 中? $.error 不会捕获加载错误吗?
猜你喜欢
  • 2015-01-18
  • 2016-01-01
  • 2016-05-03
  • 2016-01-12
  • 2014-05-01
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多