【问题标题】:Jquery check if image is loaded [duplicate]Jquery检查图像是否已加载[重复]
【发布时间】:2011-08-29 11:22:30
【问题描述】:

可能重复:
jQuery callback on image load (even when the image is cached)

有没有办法检查图像是否由 jquery 加载?我有一些带有外部 src 的图像,有时 src 指向 404 页面。有没有办法检查该图像是否已加载?然后我可以将它从 dom 中删除。

谢谢。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    jQuery有处理这个的函数,看看.error()

    例如,您可以将.error() 处理程序附加到所有图像,并在出现错误时显示其他内容,例如源不再存在:

    $('img').error(function() {
        $(this).hide();
    }).attr("src", "missing.jpg");
    

    Here is a demo

    【讨论】:

    • 是的,效果很好。谢谢:)
    • 你把它弄反了——不要隐藏图像,你应该在回调中设置src。看我的回答。
    【解决方案2】:

    @Scoobler 有正确的想法,但错误的实现。

    $(function ()
    {
        $('img').error(function()
        {
            $(this).attr('src', 'http://i.stack.imgur.com/THJzu.gif');
        });
    });
    

    .error() 绑定必须在文档准备就绪时进行 - 窗口加载为时已晚。

    演示:http://jsfiddle.net/mattball/EebmC/

    【讨论】:

    • 我也是这么想的,但奇怪的是他的演示链接有效,即使在我尝试过的巨大 DOM 中也是如此。
    【解决方案3】:

    是的,您可以像这样使用error 事件....

    $('#imageId')
      .error(function() {
        alert('Something bad happened.')
      })
      .attr("src", "image.gif");
    

    【讨论】:

    • @ Vivek.... ;) 而不是“使用”使用 ...“测试”。或者我们假设您在您的网页周围使用alerts! ;) 这看起来像是上一个答案的修改后的复制粘贴答案。
    猜你喜欢
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 2015-01-14
    • 2015-07-13
    • 1970-01-01
    • 2014-01-04
    相关资源
    最近更新 更多