为什么$(functionName())不起作用?

时间:2012-04-09 12:59:07

标签: javascript jquery

此代码按预期工作:

$(function() { 
    $("tr:odd").css("background-color","#dddddd");
})

这不是:

function temp() {
    $("tr:odd").css("background-color","#dddddd");
}

$(temp());

为什么?

4 个答案:

答案 0 :(得分:4)

因为你应该写

$(temp)

因为temp是回调

你在第二个片段中正在做的是

$(temp()) // => $(undefined) since temp doesnt return anything

答案 1 :(得分:2)

在第二个示例中,您传递的是temp函数的结果。你需要传递它的身体。所以,使用这个:

$(temp);

而不是

$(temp());

答案 2 :(得分:1)

jQuery期待回调。尝试:

$(temp);

答案 3 :(得分:0)

$(function()$(document).ready的快捷方式,它基本上在页面加载时运行。 因此,在您的顶级解决方案中,您在加载时添加了该功能,而在底部解决方案中没有这样做。

试试这个:

function temp() {
    $("tr:odd").css("background-color","#dddddd");
};

$(function() {
    temp();
});