我个人更喜欢第一种语法
jQuery()
对于常用的使用是否安全:
$(document).ready()
对于其他选择器,我会使用$('#id').
我只是要求第一个.ready
答案 0 :(得分:4)
jQuery
和$
可以互换(来自jQuery源代码):
window.jQuery = window.$ = jQuery
但要小心其他可能使用$
的库。至于使用ready()
:
以下所有三种语法都是等效的:
(文档)$。就绪(处理程序)
$()。ready(处理程序)(不建议这样做)
$(处理程序)
来自ready() API。
答案 1 :(得分:3)
在加载jquery脚本之后立即添加以下代码:
(function($){
$.fn.oldReady = $.fn.ready;
$.fn.ready = function(fn){
return $.fn.oldReady( function(){ try{ if(fn) fn.apply($,arguments); } catch(e){}} );
}
})(jQuery);
答案 2 :(得分:2)
使用jQuery
更“安全”,因为它不会与Mootools等其他框架发生冲突。如果您只使用jQuery,那么使用$
。
答案 3 :(得分:2)
如果您只使用jQuery框架,那么我将使用$
语法,特别是ready事件处理程序的简写版本更清晰。这只是个人偏好 - 它对我来说很明显它的作用,而不是那么冗长。您可以选择任何其他表格。
$(function() {
});
如果您有其他框架,那么您应该按照说明在noConflict
模式下设置jQuery:http://api.jquery.com/jQuery.noConflict/
来自引用页面的代码示例:
<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$.noConflict();
jQuery(document).ready(function($) { // or jQuery(function($) {
// Code that uses jQuery's $ can follow here.
});
// Code that uses other library's $ can follow here.
</script>
如果您正在构建自己的插件,并且您不能确定jQuery是当时使用的唯一框架,那么我将在内部使用jQuery()
或者至少在您的jQuery对象中明确地分配$范围,以便您知道您正在使用的是什么。
答案 4 :(得分:1)
两个名称$
和jQuery
是同义词。 jQuery
更明确;如果您使用其他框架,则可能会覆盖$
。
如果您将一个函数作为第一个参数传递给jQuery
函数(或者显然是$
),则会执行完全,就好像它一样打电话给jQuery(document).ready
。是的,它完全一样。
事实上,所有这些在功能上都是等价的(前提是你没有其他任何东西与$
混在一起):
$(document).ready(function() {});
jQuery(document).ready(function() {});
$(function() {});
jQuery(function() {});
完全是你使用的环境和风格问题。
我个人的偏好是使用显式$(document).ready
调用(#1):很明显,这是在DOM准备就绪时运行的代码。您的偏好(#4)的主要优点是它清楚地表明代码是jQuery,这可能对将来阅读您的代码的人有用。
答案 5 :(得分:0)
jQuery documentation说他们是一样的。
答案 6 :(得分:0)
你的问题真的是二合一的。有几种方法可以联系ready
事件,但这四种变体与问题相关:
jQuery(function(){ ... });
jQuery(document).ready(function(){ ... });
$(function(){ ... });
$(document).ready(function(){ ... });
$
标识符是jQuery
标识符的别名。使用noConflict
方法,如果它与任何其他库冲突,只能使用jQuery标识符(或者甚至释放所有标识符并指定您自己的标识符),则可以释放$
别名。
使用jQuery对象本身来挂接ready
事件是一种常用的简写,但仅仅通过查看代码它的作用就不那么清楚了。