jQuery语句必须放在$(function(){})?不是必须的。
$(function(){ //TODO:这里的内容表示js只有在DOM元素全部加载结束后才会执行 });
如上面注释中说明的,js在浏览器渲染页面时是按照在文档中出现的顺序来顺序执行的。因此如果js文件在<header>部分引入,那么文件中的js代码会在dom元素渲染完毕前就执行。假设js代码中有类似$('#elementId').click(function(){...});这样的语句,那么就会因为dom没有渲染完,导致根本找不到elementId这个对象,从而导致事件绑定失败。
但是,如果我们把js的内容放到$(function(){...});里面,这里面的代码会等到文档内容全部渲染完毕才执行。事件就能够成功绑定了。
所以我们一般在写代码时,通常会注意两点
1、借用$(function(){});包括js内容
2、将需要引入的js文件放在dom的底部引入
<html>
<head>
....
</head>
<body>
<div>...</div>
<div>...</div>
<script src="/script/test.js">
</body>
</html>

浙公网安备 33010602011771号