硬刷新后,jquery .load()不起作用

我有一些代码,当页面加载获取图像的高度,然后相应地调整其容器div的大小。 除非第一次加载页面或者用ctrl + f5进行硬刷新,否则这样可以正常工作。 我试过用

$('#div img').load(function() { // put the code here }); 

但是我遇到了同样的问题。 任何人都知道为什么会这样吗?

这是我的代码:

 maxheight = 0; $('#venue #main-img img').each(function() { height = $(this).height(); if(height > maxheight) { maxheight = height; } $(this).hide(); }); $('#venue #main-img').animate({ height: maxheight }); $('#venue #main-img img').first().show(); 

对不起应该说。 代码在$(document).ready()内

尝试在$(window).load调用代码。 这将在加载所有图像后运行。

 $(window).load(function () { // run code }); 

或者你可以试试imgload插件。

我也有同样的问题。 经过一些研究后,似乎浏览器需要为图像预定义值才能重置大小。 因此,在初始加载时,它会混乱,但在重新加载时,图像的高度会保留,因此javascript可以正常工作。 您需要在图像的初始高度进行编码,以便JS可以正确调整它们的大小。

如果您的图像没有在HTML或CSS中指定宽度/高度,则在下载图像之后才能知道它们的宽度/高度。

$(document).ready在加载DOM时触发,但可能在下载辅助媒体(如图像)之前触发。 这意味着当您的浏览器重新下载图像时,您的宽度/高度可能为0。

也许你可以使用这样的东西。 特别是“imagesLoaded”插件看起来很有用(虽然它的代码暗示$(imgs).load应该对你有用>。<)。

你可能想尝试这样做:

 $(document).ready(function(){ //code here }); 

你可以使用像这样的一些jQuery插件https://gist.github.com/797120/b7359a8ba0ab5be298875215d07819fe61f87399