jQuery语句必须放在$(function(){});里面吗

发现写个jQuery放在其它里面就是没有反应,必须放在$(function(){}):里面才会起作用,或者其他地方的jQuery必须被$(function(){}):调用... 发现写个jQuery放在其它里面就是没有反应,必须放在$(function(){}):里面才会起作用,或者其他地方的jQuery必须被$(function(){}):调用,难道其他地方不行? 展开
 我来答
0动感蚂蚁0
2017-06-27 · TA获得超过391个赞
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:123万
展开全部

不是必须的。

$(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>
匿名用户
2013-10-25
展开全部
$(function(){})是代表什么意思你知道吗?它是代表页面加载完的时间...就相当于你在body定义onload事件....写在其他地方是可以的....只是我们习惯在加载后注册jQuery事件....你写的外面就要考虑它的加载顺序了..如果写在里面是不需要的...因为它会等到页面加载完毕才去运行的....
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-25
展开全部
$(function(){})的标准写法现在是$(document).ready(function(){});他跟onload还是有不同的,当DOM载入就绪可以查询及操纵时就会执行里面的语句,而onload要所有的元素(图片,视频等)都载入才执行。你的jquery语句可以放在任何地方执行,当然之前你要先装载jquery库文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-25
展开全部
你是怎么写的?不一定要放在$(function(){})里面的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式