$(document).ready(function() {
$("button").on("click", TestFunction());
});
function TestFunction() {
console.log("Function called");
$b = $("#test");
$b.remove();
}
VS
$(document).ready(function() {
$("button").on("click", function() {
$b = $("#test");
$b.remove();
});
});
第一个在页面加载后删除按钮#test。无需单击按钮,只需将其删除即可。第二个按预期工作。显示该按钮,在调用该按钮之前不会将其删除。
我没有进行Javascript语法/ jQuery API的哪些部分?我认为传递给.on()的handler参数是一个函数。我在第一个例子中传递了一个函数,似乎已经调用了它,但它忽略了“点击”。
在调用函数之前,函数内部是否应该被忽略?
答案 0 :(得分:5)
$("button").on
的第二个参数接受函数的函数和 NOT 返回值(除非返回值属于function
)类型。你为第二个版本而不是第一个版本做得对。因此,要在第一个版本中修复您的问题,您必须传递一个函数,如下所示:
$(document).ready(function() {
$("button").on("click", TestFunction);
});

答案 1 :(得分:0)
package com.sparkarma.spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object WordCount{
def main(args:Array[String]) {
val conf = new SparkConf().setAppName("Word Count").setMaster("local[2]")
val sc = new SparkContext(conf)
val bigFile = sc.textFile("hdfs://localhost:9000/home/chaitanya/files/bigText")
val words = bigFile.flatMap(line => line.split(" ")).count()
println(words)
}
}
现在应该可以了, ()在没有它们的情况下立即调用函数,您传递函数值
答案 2 :(得分:0)
在第一种绑定事件方式中,您实际上正在调用一个函数,该函数返回的内容将与click事件上的按钮绑定。
因此,不应该调用函数,而应该只传递应该与元素绑定的函数名。
$(document).ready(function() {
$("button").on("click", TestFunction);
});