当从脚本加载图像时,jquery加载div

时间:2012-12-15 15:57:24

标签: jquery image load

当img src已经设置时,此代码正常工作,如:

<div id="images">
<img src="something.jpg" />
</div>
<script type="text/javascript">
    $(document).ready(function(){
        $("div#images").hide();
        $("div#images").find("img").load(function(){
            $(this).closest("div#images").show();
        });
    });
</script>

但是如果图像src正在调用脚本,它就无效了:

<img src="getimage.php?img=something.jpg" />

在getimage.php中我做了回显readfile($ _ GET [“img”]);

我该如何做到这一点?

帕特里克

3 个答案:

答案 0 :(得分:0)

如果你想操纵SRC属性,你可以使用JQuery的attr()函数:

$("#myImg").attr("src","newImage.png");

答案 1 :(得分:0)

使用window.onload代替$(document).ready

当html准备就绪时会发生

$(document).ready,而在图片和竞争加载后发生window.onload

我认为你的代码存在的问题是,当加载div“div#images”中的任何图像时,会调用显示相同div的函数,即使其他图片尚未加载。

您可以尝试隐藏$(document).ready上的“div#images”并将其显示在window.onload上。

答案 2 :(得分:0)

谢谢!

这就是我所做的:

<script type="text/javascript">
$("div#images").hide();
var $images = $('div#images img');
var loaded_images_count = 0;
$images.load(function(){
    loaded_images_count++;
    if (loaded_images_count == $images.length) {
        $("div#images").show();
    }
});
</script>