我想知道如何使用JQuery创建一个函数,每次图像加载完成后都会运行该函数。我希望这个函数被称为每个时间,不仅一次。因此,例如,如果我有“image1.jpg”并且它在页面启动时加载,则会调用该函数。然后,如果我更改图像,并在使用Javascript更改后再次加载图像,我希望“加载”函数再次触发。我试过Jquery Load()函数,但它只运行一次,而不是图像被另一个替换后的第二次。每次图像加载完成后运行一个函数
我还希望即使图像已被缓存,甚至也会发生。这意味着每次我更改图像的'src'属性时,我都希望特定的函数能够启动 - 即使图像已被缓存,也是如此。
例子:
$("#myimageselector").attr("src", "http://domain.com/the_new_image.jpg");
我想,当发生这种情况,即使图像已经缓存功能将闪光。我认为有可能知道这些图像是否已被缓存。我只需要有一个将运行一次(当然)的.load()函数,如果它没有被执行,这意味着图像已被缓存。至少对于我的具体用法。
想法:也许我们应该绑定一个事件,检查DOM中的变化以进行特定的元素更改。所以也许如果图像已经完成加载,一个特定的DOM元素被改变,所以我们可以检查前后值。
谢谢。
我不认为你可以使用'load'事件,因为它似乎没有泡沫。至少[在这个例子中](http://jsfiddle.net/s5zjj/)它不会触发。另外,你真的不需要在'$(document).ready(...)'中放置'.live()'代码。如果你打算使用'.live()',那么最好放在外面,这样如果在DOM准备好之前发生事件,处理程序就会触发。 – user113716
不会触发。我也希望它在图像已被缓存时触发 –
不幸的是,无法检测缓存图像何时被重新加载。如果图像很小,并且加载事件对您来说非常重要,您可以通过在图像中附加一个随机查询字符串来禁用缓存,例如:'img.src =“img.png?”+(new Date).getTime ()'。 –