我有一個外部JavaScript文件和Css文件。 在This question中,他們表示在Css之前包括Js可能會提高性能。但是如果我在Css之前加載JS,當我調用.offset()函數時,Chrome會返回一個不同的值。 HTML文件:在Css導致保證金錯誤之前放置JS文件
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="script/jquery.js"></script>
<script type="text/javascript" src="script/divtest.js"></script>
<link rel="stylesheet" type="text/css" href="css/divtest1.css"/>
<title>TEST</title>
</head>
<body>
<div id="canvas">
hello
</div>
<div id="msg">
</div>
</body>
JavaScript文件:
$(function(){
var margin;
margin=$('#canvas').offset().left;
$('#msg').html(margin);
});
CSS文件:
*{
margin:0px;
padding:0px;
}
#canvas{
margin-left:200px;
background-color:red;
width:300px;
height:300px;
}
測試頁是http://me.lzu.edu.cn:8080/work/divtest
它看起來在所有瀏覽器不錯,但當我調用offset()。left時,它們返回不同的值。在IE和Firefox中,它返回200,但在Chrome中返回8. Chrome版本爲41.0.2272.118m。我已經要求我的一些朋友測試此頁面並獲得相同的答案。但是如果我在JS之前放置Css,它們全部返回200.看來,在Chrome中,$(function(){})無法按預期工作。 我是否誤解了某些事物?我應該停止在Css之前放置JS嗎? 非常感謝!
非常感謝。看來我混淆了'$(function(){});'和'$(window).load(function(){});'。它適用於'$(window).load(function(){});'。 – 2015-04-05 09:35:43
這兩個很容易混淆,我完全同意。沒問題,祝你好運! – RepeatQuotations 2015-04-05 11:18:45