$(document).ready(function(){})和$(document).on('ready',function(e)之间的差异

Emi*_*ort 4 jquery

我看到很多项目正在使用

$(document).on('ready', function(e){
 //jquery stuff
})
Run Code Online (Sandbox Code Playgroud)

代替:

$( document ).ready(function(  ) {
  // Code using $ as usual goes here.
});
Run Code Online (Sandbox Code Playgroud)

要么

 $(function() {
  // Handler for .ready() called.
 });
Run Code Online (Sandbox Code Playgroud)

我阅读了完整的api文档, 但我没有看到使用第一个示例的情况.

对我来说,on在第一个例子中使用是没用的.

案件之间有什么区别?

Pra*_*man 9

功能:

$( document ).ready(function ( ) {
  // Code using $ as usual goes here.
});
Run Code Online (Sandbox Code Playgroud)

翻译为:

$( document ).on( 'ready', function (e) {
 //jquery stuff
})
Run Code Online (Sandbox Code Playgroud)

这些速记函数也是如此:

$( element ).click( function ( ) { } );
$( element ).hover( function ( ) { } );
$( element ).load( function ( ) { } );
$( element ).scroll( function ( ) { } );
Run Code Online (Sandbox Code Playgroud)

文件.click( handler(eventObject) ):

此方法是.on( "click", handler )前两个变体和.trigger( "click" )第三个变体的快捷方式.


更新的答案 - 区别!

从jQuery 1.8开始$(document).on( "ready", handler ),也不赞成使用.这与ready方法的行为类似,但如果ready事件已经触发,则尝试.on( "ready" )绑定处理程序将不会执行.以这种方式绑定的就绪处理程序在被上述其他三种方法绑定后执行.

- 来源

更新#2

jQuery(function(){});

也应该被认为是一个较短的替代品

jQuery(document).ready(function(){});

它是真正的首选,因为它不会降低可读性并消除几个字节的字符.

  • 不要忘记添加回调,否则它将被解释为触发器.;-) (2认同)