Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当图像可能尚未加载时,获取包含图像的元素的$.height()_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 当图像可能尚未加载时,获取包含图像的元素的$.height()

Javascript 当图像可能尚未加载时,获取包含图像的元素的$.height(),javascript,jquery,ajax,Javascript,Jquery,Ajax,我在Ajax调用后插入一些HTML代码,在Ajax回调中,我需要添加Div的高度。 问题是,在来自Ajax调用的HTML中,有一些元素,比如图像和其他必须首先处理的元素 我在JSFIDLE中做了一个简单的问题示例: 正如我添加代码时看到的,控制台显示为36,但如果单击div,则显示为242(因为图像已加载)。有时,如果图像在缓存中已准备就绪,则它也会起作用,以测试它是否使用已清除的缓存重新加载页面 我需要的是类似于$(document).ready()的东西,但只需要ajax调用的元素。有人知道

我在Ajax调用后插入一些HTML代码,在Ajax回调中,我需要添加Div的高度。 问题是,在来自Ajax调用的HTML中,有一些元素,比如图像和其他必须首先处理的元素

我在JSFIDLE中做了一个简单的问题示例: 正如我添加代码时看到的,控制台显示为36,但如果单击div,则显示为242(因为图像已加载)。有时,如果图像在缓存中已准备就绪,则它也会起作用,以测试它是否使用已清除的缓存重新加载页面

我需要的是类似于
$(document).ready()
的东西,但只需要ajax调用的元素。有人知道我该怎么做吗

$("div *").one("load", function() {
  alert($("div").height());
});
小提琴:

使用Harry建议的加载功能


此函数将处理您列出的其他类型的元素(iframe等)

您应该绑定。将事件加载到图像,然后在加载图像后获得高度。@HarryBomrah我可以用另一种方法解决我的任务。但这个问题仍然存在。仅针对图像,您的解决方案听起来不错。但在我的例子中还有其他东西(其中有一个iframe,通过ajax加载东西(比如facebook按钮,如果喜欢的话,它会变得更高))。当所有的都被加载时,当它是如此硬嵌套的时候,它甚至可能被监听吗?iframe是由您放置的还是其他脚本正在这样做?对不起,迟了答复。