$(document).ready(SetupButtonClicks());
function SetupButtonClicks() {
$('#btnJavaPHP').click(DoPHPStuff());
}
function DoPHPStuff() {
//stuff
}
我在我的javascript文件中有这个代码,当我调试它时,我看到它应该像它应该调用SetupButtonClicks()
但是在完成后它会调用DoPHPStuff()
。只有在点击DoPHPStuff()
时才会调用btnJavaPHP
。我做错了什么?
答案 0 :(得分:17)
更改SetupButtonClicks功能:
$('#btnJavaPHP').click(DoHPStuff);
你编码的方式,你告诉Javascript 调用函数,而不是使用它作为“点击”处理程序。括号是运算符,可以调用函数。
答案 1 :(得分:3)
删除()
。
通过撰写$(document).ready(SetupButtonClicks())
,您致电 SetupButtonClicks
并将其返回值传递给ready
。
同样,通过撰写$('#btnJavaPHP').click(DoPHPStuff())
,您调用 DoPHPStuff
(立即)并将其返回的内容传递给click()
。
您需要通过撰写$(document).ready(SetupButtonClicks)
和$('#btnJavaPHP').click(DoPHPStuff)
来传递函数。
答案 2 :(得分:3)
function DoPHPStuff() {
//stuff
}
function SetupButtonClicks() {
$('#btnJavaPHP').click(DoPHPStuff);
}
$(document).ready(SetupButtonClicks);
答案 3 :(得分:2)
除了函数声明之外,函数标识符后面的一对括号会导致函数执行。例子:
// function declaration; function not executed
function SetupButtonClicks() {
}
// function executed
SetupButtonClicks();
// function not executed
SetupButtonClicks;