Jquery 图像预加载问题(使用$(“img”).load()

Jquery 图像预加载问题(使用$(“img”).load(),jquery,Jquery,在应用悬停效果之前,我使用load函数预加载图像 $("img").load(function(){ //image preloading //some function & variable setting $listingItems.hover( function(){ //effect }, function(){ //effect back } )

在应用悬停效果之前,我使用load函数预加载图像

$("img").load(function(){ //image preloading

//some function & variable setting

    $listingItems.hover(
        function(){
            //effect
        },
        function(){
            //effect back
        }
    )

}) // load
我的问题是,只有重新加载页面时效果才会起作用。当我第一次进入页面时,图像被加载,但没有悬停效果

$("img").load(function(){ //image preloading

//some function & variable setting

    $listingItems.hover(
        function(){
            //effect
        },
        function(){
            //effect back
        }
    )

}) // load
您可以在此处查看源代码:


我做错了什么?有人能帮忙吗?在执行函数之前,是否有其他简单的方法预加载图像?

如果图像来自某些浏览器中的缓存,则不会触发
加载
事件,但有一种解决方法,可以通过检查
.complete
属性并使用确保
加载
事件处理程序只触发一次,如下所示:

$("img").one('load', function(){
  //current code
}).each(function() {
  if(this.complete) $(this).load();
});

如果图像是
.complete
(快速加载或从缓存加载),它将循环遍历图像。如果图像已经运行(快速加载),则触发
加载
事件处理程序,而不是出汗,这就是问题所在。

我的网站也有同样的问题。