可能重复: $(document).ready速记
有谁能帮我理解下面的JS代码,请:
$(function(){ <-- Is this a JS constructor? Why we need this?
var someVariable = $(".classa").on('click', function() { <-- At what point in time does someVariable get populated?
var $this = $(this);
id = $this.attr('id');
someVariable.removeClass('selected');
});
var someVariable2 = $(".classb").on('click', function() {
var $this = $(this);
id = $this.attr('id');
someVariable2.removeClass('selected');
});
});发布于 2012-05-21 22:46:28
$是函数的名称。在它的内部传递一个匿名函数作为它的第一个参数。如果我们要降低它的复杂性,它会是这样的:
var $ = function( arg1 ){
/* Internals */
};如果我们现在就这样称呼它,它将看起来如下所示:
$("foo");在这段代码中,"foo"是我们的第一个参数。现在假设我们用另一个函数替换了我们的"foo":
var callback = function(){
alert("Hello World");
};如果我们将它传递到我们的$函数中,它将如下所示:
$( callback );但是我们真的不需要使用命名函数,我们可以使用一个匿名函数:
$(function(){
alert("Hello World");
});开始看到相似之处了吗?在$生命的某个时刻,它将决定它将执行我们传递的函数。在它执行之前,我们的函数什么也不做。
现在我们在这里讨论jQuery,每当DOM准备好时,jQuery就会执行这个函数。因此,我们传递的代码应该在DOM准备好时执行。
发布于 2012-05-21 22:48:38
$不是js构造函数。它是一个jquery(js库)函数。变量在声明时被填充。
https://stackoverflow.com/questions/10693625
复制相似问题