$
有什么区别?
问题:
下一个示例中$
的含义是什么?
JS:
jQuery(document).ready(function() {
console.log('loaded');
});
jQuery(document).ready(function($) {
console.log('loaded');
});
有人可以向我解释这两个功能之间有什么区别吗?
提前谢谢
答案 0 :(得分:2)
答案 1 :(得分:2)
$
通常是jQuery构造函数的名称。也就是说,它是每次要创建jQuery对象时调用的函数的名称。例如:
$('div')
它通常是一个全局变量,这意味着它可以在整个页面的Javascript中使用。还有另一个变量jQuery
,它通常指向完全相同的东西。
console.log($ === jQuery); // true
但是,可能将$
设置为其他内容。也许您希望使用$
来表示代码中的不同内容。或者也许您也在使用Prototype,它也使用$
符号指向函数。
这就是jQuery.noConflict()
方法存在的原因:它会$
停止jQuery
。
但是,许多作者更喜欢使用$
来引用jQuery构造函数,因为它更简洁,更易读。 jQuery提供了一个有用的功能,使他们可以轻松地执行此操作。
执行jQuery(document).ready(function()
时,您正在分配事件处理程序。触发事件时将运行该函数。我们可以做的是重新分配$
以仅在该回调函数的范围内引用jQuery 。这得益于jQuery:每个$(document).ready
回调函数都以jQuery
构造函数作为第一个参数调用,因此您可以使用您在函数中选择的任何名称。
例如:
var $ = 'apples';
jQuery(document).ready(function() {
$('div'); // causes an error: "TypeError: string is not a function"
});
jQuery(document).ready(function($) {
$('div'); // works fine
});
此功能记录在ready
方法的jQuery API中,标题为“别名jQuery命名空间”一节。