铬零的jquery高度

Joh*_*lta 2 jquery

我把图像附加到图像上

$(document).ready(function(){
$('.shop_banner img').capty({height:150});
});
Run Code Online (Sandbox Code Playgroud)

在chrome中我调试capty代码alert($this.height())为零所以包装器隐藏图像.我知道有些浏览器希望图像完全加载但如果我使用ready并不意味着它在页面完全加载后执行?我能做什么?

Den*_*ret 5

不,加载和准备不是一回事.

你可以做

$(window).load(function(){
    $('.shop_banner img').capty({height:150});
});
Run Code Online (Sandbox Code Playgroud)

准备尽快调用你的函数作为DOM准备就绪,其中图像加载并不意味着.

从文档:

虽然JavaScript提供了在呈现页面时执行代码的加载事件,但在完全接收到所有资产(如图像)之前,不会触发此事件.在大多数情况下,只要完全构造DOM层次结构,就可以运行脚本.传递给.ready()的处理程序保证在DOM准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他jQuery代码的最佳位置.使用依赖于CSS样式属性值的脚本时,在引用脚本之前引用外部样式表或嵌入样式元素很重要.

如果代码依赖于加载的资源(例如,如果需要图像的维度),则应将代码放在load事件的处理程序中.