JQuery最佳实践,使用$(document).ready在一个IIFE?

前端之家收集整理的这篇文章主要介绍了JQuery最佳实践,使用$(document).ready在一个IIFE?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在看一段代码
(function($) {    
   // other code here    
 $(document).ready(function() {   
    // other code here    
  });    
})(jQuery);

我虽然IIFE的功能是$(document).ready,这段代码是否正确?或者我可以删除$(document).ready并将代码直接放在IIFE中。

解决方法

不,IIFE不会在文档中执行代码准备。

刚刚在IIFE:

(function($) {
  console.log('logs immediately');
})(jQuery);

代码立即运行,立即记录“立即登录”,而无需准备好文档。

准备中:

(function($) {
   $(document).ready(function(){
     console.log('logs after ready');
   });
})(jQuery);

立即运行代码并等待文档准备就绪并记录“准备好之后的日志”。

这更好地理解:

(function($) {
  console.log('logs immediately');
  $(document).ready(function(){
    console.log('logs after ready');
  });
})(jQuery);

这将在窗口加载后立即将“立即记录”登录到控制台,但是在文档准备好之后才会记录“准备好的日志”。

IIFE是不可替代的准备:

$(document).ready(function(){})的替代方法是:

$(function(){
   //code in here
});

更新

从jQuery 3.0版本开始,更改处理程序。

Only the following form of ready handler is recommended.

jQuery(function($) {

});

Ready handler is now asynchronous.

$(function() {
  console.log("inside handler");
});
console.log("outside handler");

> outside handler

> inside handler

原文链接:https://www.f2er.com/jquery/182689.html

猜你在找的jQuery相关文章