jQuery两种文档就绪写法是否可行?是否触发两次ready?
jQuery两种document ready写法的疑问解答
先明确两种写法的代码示例:
- 写法1(简写):
$(function() { // 文档就绪后执行的逻辑 });
- 写法2(完整写法):
$(document).ready(function() { // 文档就绪后执行的逻辑 });
下面逐个解答你的问题:
1. 两种写法是否都可行?
肯定都可行。jQuery官方明确规定$(function())就是$(document).ready()的官方简写,二者在功能和内部实现上完全等价,没有任何区别。
2. 同事的写法(写法2)是否合理?
完全合理。写法2是完整的显式调用,可读性更强,对jQuery新手友好,能一眼看懂这是绑定文档就绪事件;写法1更简洁,适合熟悉jQuery的开发者快速编写。两种写法没有优劣,选择哪种全看团队编码规范或者个人习惯。
3. 同事的写法会触发两次document ready吗?
不会。不管用哪种写法,只要是单次绑定ready回调,就只会在文档就绪时触发一次。写法2只是完整调用了.ready()方法,内部逻辑和简写版本完全一致,不存在重复触发的问题。
4. 同时使用两种写法,会触发两次ready吗?
这里要澄清:ready事件本身只会触发一次,但如果你分别用两种写法绑定了不同的回调函数,比如:
$(function() { console.log('简写写法的逻辑'); }); $(document).ready(function() { console.log('完整写法的逻辑'); });
这种情况下,当文档就绪时,ready事件触发,会依次执行所有绑定的回调函数,而不是触发两次ready事件。
5. 哪部分逻辑先执行?
按照代码中绑定的顺序执行——谁的代码写在前面,谁的回调就先执行。比如上面的例子,简写写法的代码在前,就会先输出简写写法的逻辑,再输出完整写法的逻辑。
内容的提问来源于stack exchange,提问作者Kershaw
相关产品推荐
相关产品推荐

