情况如下:
$(document).ready(function(){ // this will return different result alert($('#foo').width()); // than this !!! setTimeout(function(){ alert($('#foo').width()); },1000); });
CSS(在< head>部分):
<link href='http://fonts.googleapis.com/css?family=Headland+One' rel='stylesheet' type='text/css'> ... and #foo { font-family: 'Headland One',serif; }
当我使用标准字体(例如Arial)时,一切都很好(.width()在两种情况下返回相同的结果)
解决方法
因为它加载了一个远程字体.您应该使用$(window).load()而不是$(document).ready():第一个将在下载所有远程字体/样式表/脚本和图像时被触发,第二个仅在DOM时被触发准备好了.