jQuery width()返回0

Jac*_*kie 19 javascript jquery

可能重复:
要求jQuery等待所有图像在执行之前加载的官方方法

我正在写一个jQuery插件,处理一个简单的调用插件功能(像一堆图像动画$("#image1").anims()这里#image1是一个图像),但是由于该插件的部分功能,我用$(this).width()在获取图像正确的宽度启动函数调用.

但是,由于调用插件函数$(document).ready,它试图在图像加载之前获取图像的宽度,因此它总是返回0.是否有解决方法?

Tho*_*ock 13

http://docs.jquery.com/Events/load

$("#image1").load(function () {
$("#image1").anims();
});
Run Code Online (Sandbox Code Playgroud)


And*_*are -3

您可以使用一个setTimeout()函数来延迟执行足够长的时间以便加载图像。

以下是其工作原理的示例:

setTimeout("alert('hello world');", 5000);
Run Code Online (Sandbox Code Playgroud)

第一个参数是一个字符串,JavaScript 引擎将其解析为执行代码,第二个参数是一个整数值,表示您希望在第一个参数中的代码执行之前延迟多少毫秒。

  • 所需的毫秒数是否会根据计算机/互联网连接速度而变化?理想情况下它会尽快准备好,所以我不想延迟十秒或其他什么,但我也不想让慢吞吞的人在黑暗中。 (2认同)