2009-07-11 49 views

回答

3

你读你所拨叫(在这种情况下,ready方法),看看它期望什么样的价值的方法的文档。

如果它期望一个函数,请使用第一个示例。

如果它期望一个jQuery *对象,请使用第二个示例(因为addClass方法的返回值是一个jQuery对象)。我认为你使用的是jQuery,因为我认为它是唯一具有类似功能的库。我可能错了,$ is a stupid name for a function

+0

大声笑,$的东西有点迂腐。 – xenon 2009-07-11 11:27:56

0

如果该函数接受一个函数作为参数,代码2将无法正常工作,因为

$('.poem-stanza').addClass('highlight'); 

不是函数的定义(这是一个语句)

创建表示函数的对象,以下语法之一应使用:

function myFunc() { 
} 

var myFunc = function() { 
} 

var myFunc = new Function("...javascript code..."); 

上述定义中的一个之后,myFunc的将持有表示的功能的对象。

0

嘿,这就是它是:d

没有,严重的是,当你需要做的准备里面的东西();或类似的方法,你使用一个。功能。其他方法接受参数。 Google文档会为您提供详细信息。

0

就像其他人说的,你必须查看文档来查看该函数接受的参数类型。然而,这里的重要部分是:如果你有一个语句,当解释器碰到它时它就会执行。如果您定义了一个函数并将其传递给就绪函数,就绪函数将决定何时执行该函数。在这种情况下,当文件准备就绪时。另一个例子是setTimeout,它需要一个函数和毫秒数作为参数。

规则是这样的:当你想传递一些代码给其他某个函数时,你必须把它包装在一个函数中。如果你使用(unwrapped)语句,它将被执行并且结果被传递给函数。

0

如果您需要回调函数,请使用函数关键字。当你使用像readyclick这样的方法时,你不想让代码在你设置事件时运行,但是当事件发生时,所以你需要一个回调函数。

使用匿名函数就像使用前面定义的命名函数一样。在这样的例子中,更容易遵循发生的事情:

function onReady() { 
    $('.poem-stanza').addClass('highlight'); 
} 

$(document).ready(onReady); 
相关问题