图像加载时的jQuery触发器(隐藏图像)

图像加载时的jQuery触发器(隐藏图像),jquery,triggers,load,background-image,image,Jquery,Triggers,Load,Background Image,Image,好的,我听说JS不能在CSS背景图像加载上触发事件。所以,我看到一些人建议,在img标签加载时触发事件。但是你显然需要隐藏这个图像,这样它就不会显示了 您是否需要将此图像放在页面上的某个位置,然后执行如下操作:display:nonecss 否则,这显然是一个很好的大形象,你不想看到 我原以为,如果图像是display:none;,大多数不太体面的浏览器都不会加载它。或者JS可以将图像加载到缓存中,而HTML完全不知道它 我错了吗?。。。如果是这样的话,那将是人生中少有的一个错误让人敬畏的时刻

好的,我听说JS不能在CSS背景图像加载上触发事件。所以,我看到一些人建议,在img标签加载时触发事件。但是你显然需要隐藏这个图像,这样它就不会显示了

您是否需要将此图像放在页面上的某个位置,然后执行如下操作:display:nonecss

否则,这显然是一个很好的大形象,你不想看到

我原以为,如果图像是display:none;,大多数不太体面的浏览器都不会加载它。或者JS可以将图像加载到缓存中,而HTML完全不知道它

我错了吗?。。。如果是这样的话,那将是人生中少有的一个错误让人敬畏的时刻


等不及HTML6了。也不能像往常一样等待没有人支持它,然后又成为一个愤世嫉俗的白痴,在接下来的5年里喋喋不休地谈论它。

Display-none实际上根本无法加载该图像,这完全抵消了您想要实现的目标

您可以轻松地将图像添加到“缓存”中

var myImage = new Image();
    myImage.onload = function(){
        // What you want to do!
    };
    myImage.src = 'myimage.png';

此外,这会停止对背景图像的进一步HTTP请求吗?似乎不会,但我很想听听你的体验。跨浏览器:记不起来它在任何现代图形浏览器上都不工作。它是否会停止另一个http请求取决于浏览器。一些浏览器非常高效/智能,而另一些则不是。我从未测试过这个。如果可用,它至少会使用缓存。听起来不错。真不敢相信这些老一套的东西适用于这个应用程序。这么好。完美答案和+1。顺便说一句,非常干净的代码。嗯,似乎这只适用于第一页加载。由于浏览器缓存的原因,jQuery的.load()用于图像的操作稍微复杂一些。如果图像被缓存,您将遇到此问题。现在我知道这不是一个快速解决办法。绝对不是。对于一个常见的问题来说,这是非常复杂的。向那些制造浏览器和软件而不能满足普通界面需求的白痴们表示感谢。到底是什么问题?或者你想做什么?将image.load包装在document.load中,您将永远不会得到过早启动的函数。但当然,也许你的用例与我见过的任何用例都完全不同。