【发布时间】:2017-05-10 04:13:28
【问题描述】:
$(document).ready(function() {
$("button").on("click", TestFunction());
});
function TestFunction() {
console.log("Function called");
$b = $("#test");
$b.remove();
}
对
$(document).ready(function() {
$("button").on("click", function() {
$b = $("#test");
$b.remove();
});
});
页面加载后,第一个删除按钮#test。无需单击按钮,它只是将其删除。第二个按预期工作。该按钮会显示出来,并且在被调用之前不会被移除。
我不了解 Javascript 语法/jQuery API 的哪一部分?我认为传递给 .on() 的处理程序参数是一个函数。我在第一个示例中传递了一个函数,它似乎调用了它,但它忽略了“点击”。
在调用函数之前不应该忽略函数内部的任何内容吗?
【问题讨论】:
-
因为一个传递函数,另一个调用函数。
-
“在调用函数之前,不应该忽略函数内部的任何内容吗?” 这正是您对
TestFunction()所做的事情。()在函数引用之后总是调用该函数。foo(bar())首先调用bar并将其返回值传递给foo。foo(bar)将bar的值(即函数对象本身)传递给foo。 -
除了链接的副本,请参阅this question(和其他)。
标签: javascript jquery