【问题标题】:jquery load div when img loaded from script从脚本加载图像时jquery加载div
【发布时间】:2012-12-16 06:25:22
【问题描述】:

当 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>

但是如果 images src 正在调用脚本,它就不起作用:

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

在 getimage.php 我做 echo readfile($_GET["img"]);

我怎样才能做到这一点?

帕特里克

【问题讨论】:

  • 你可以试试这个:在你的浏览器中导航到:“getimage.php?img=something.jpg”,你能看到图片吗?
  • 使用 jQuery load 函数。
  • 我试过加载功能,看这个:stackoverflow.com/questions/13893908/…

标签: jquery image load


【解决方案1】:

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

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

【讨论】:

  • 好的,我将如何应用它?
  • 不确定你在问什么。当您需要获取新图像而不是现有图像时,您可以使用我演示的方法。也就是说,您可以拥有一个带有空 SRC 属性的隐藏 IMG 元素,该元素将通过 JS 进行操作
【解决方案2】:

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

$(document).ready 在 html 准备就绪时发生,而 window.onload 在图像和竞争加载后发生。

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

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

【讨论】:

  • 我试过了。但它不起作用,因为 $(window).load() 在加载图像数据之后稍后运行。
  • 尝试隐藏 $(document).ready 上的“div#images”并将其显示在 window.onload 上
【解决方案3】:

谢谢!

这就是我所做的:

<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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多