有什么区别$
?
问题:
$
下一个例子是什么意思?
JS:
jQuery(document).ready(function() {
console.log('loaded');
});
jQuery(document).ready(function($) {
console.log('loaded');
});
有人可以向我解释这两个功能有什么区别吗?
先感谢您
有什么区别$
?
问题:
$
下一个例子是什么意思?
JS:
jQuery(document).ready(function() {
console.log('loaded');
});
jQuery(document).ready(function($) {
console.log('loaded');
});
有人可以向我解释这两个功能有什么区别吗?
先感谢您
$
通常是 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 命名空间起别名”的部分中。