10

我看到很多项目使用

$(document).on('ready', function(e){
 //jquery stuff
})

代替:

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

或者

 $(function() {
  // Handler for .ready() called.
 });

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

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

案例之间有什么区别?

4

1 回答 1

18

功能:

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

转换为:

$( document ).on( 'ready', function (e) {
 //jquery stuff
})

这些速记函数也是如此:

$( element ).click( function ( ) { } );
$( element ).hover( function ( ) { } );
$( element ).load( function ( ) { } );
$( element ).scroll( function ( ) { } );

从以下文档.click( handler(eventObject) )

这种方法是.on( "click", handler )前两种变体和.trigger( "click" )第三种变体的捷径。


更新的答案 - 不同之处!

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

--来源

更新#2

jQuery(function(){});

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

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

它确实是首选,因为它不会降低可读性并删除几个字节的字符。

于 2013-10-16T15:56:17.117 回答