【发布时间】:2011-08-15 18:22:44
【问题描述】:
在 jQuery 站点上,$(callback) 的描述是它的行为与 $(document).ready(function) 相同,但是示例显示了两种语法之间的一些差异。所以我想知道,有人知道这两者之间的区别是什么吗?
【问题讨论】:
-
你在说什么区别?
标签: javascript jquery callback document-ready
在 jQuery 站点上,$(callback) 的描述是它的行为与 $(document).ready(function) 相同,但是示例显示了两种语法之间的一些差异。所以我想知道,有人知道这两者之间的区别是什么吗?
【问题讨论】:
标签: javascript jquery callback document-ready
没有区别,文档也没有显示任何区别:
以下三种语法都是等价的:
- $(document).ready(handler)
- $().ready(handler)(不推荐)
- $(处理程序)
直接来自:http://api.jquery.com/ready/
我认为您对显示 jQuery(function($){ ... }); 的示例感到困惑
这只是一种调用$(handler) 的方式,没有$ 冲突。
IE。
// Here `$` is used by another library
jQuery(function($){
// Here `$` refers to jQuery
});
【讨论】:
$(document).ready(function() {
// Handler for .ready() called.
});
相当于调用:
$(function() {
// Handler for .ready() called.
});
【讨论】:
根本没有区别,只是快捷方式有点慢,因为它必须决定参数的类型,然后调用$(document).ready。 (其实jQuery的源代码非常干净,所以你可以很容易地自己检查-$()calls$.fn.init,其中goes through a couple of tests然后在第177行调用ready。)
【讨论】:
没有区别。
如果你只用一个参数调用$() - 一个函数:$(some_function) - 这意味着它将调用$(document).ready(some_function)
因此,为简单起见,您可以使用:
$(function(){
// your code
});
附:如果您使用不同的库(可能与 $ 变量冲突),请不要使用此结构。在这些情况下使用:
jQuery(function(){
// your code
});
【讨论】: