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

时间:2013-10-16 15:54:41

标签: jquery

我看到许多项目使用

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

而不是:

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

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

我阅读完整的api documentation,但我不知道使用第一个例子是什么情况。

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

案件之间有什么区别?

1 个答案:

答案 0 :(得分:9)

功能:

$( 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) )的{​​{3}}:

  

此方法是前两个版本中.on( "click", handler )的快捷方式,第三个版本中是.trigger( "click" )的快捷方式。


更新的答案 - 差异!

  

还有$(document).on( "ready", handler )已弃用   jQuery 1.8 。这与ready方法的行为类似,但如果是   ready事件已经触发,你尝试.on( "ready" )绑定   处理程序将不会被执行。以这种方式绑定的现成处理程序是   在被上述其他三种方法约束后执行。

- documentation

更新#2

jQuery(function(){});

也应被视为

的较短替代品

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

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