我想知道为什么,只要页面加载,就会调用函数btw_bijtellen ()
。我想通过点击......来调用它。
var $ = function (id) {
return document.getElementById (id);
}
function btw_bijtellen () {
window.alert("we want to calculate something after clicking th button");
}
$("bereken").onclick = btw_bijtellen ();
答案 0 :(得分:16)
您添加了导致该功能执行的()
。
例如:
var myFunc1 = function() {
alert('Hello');
}(); // <--- () causes self execution
var myFunc2 = function() {
return 5 + 5;
};
var some_value = myFunc2(); // <--- Again () causes execution (you'd expect this one)
在你的情况下,正如评论中所提到的,你基本上是告诉onclick
将其值设置为函数的返回值。
如果删除()
,它应按预期运行。
答案 1 :(得分:3)
如果您想在点击时调用该功能,请使用
$("bereken").on('click', btw_bijtellen);
如果需要传递参数,则需要指定为第二个参数。 $.on()
获取event
处理程序
$("bereken").on('click', {key1: value1, key2: value2, keyn: valuen}, btw_bijtellen);
在哪里,您可以从event.data
var function = btw_bijtellen(event) {
var data = event.data;
console.log(data);
var key1 = event.data.key1;
console.log(key1); // this will output value1
}
请阅读此链接jQuery $.on() api
答案 2 :(得分:0)
将()
放在函数名后面是你如何调用它。
如果您要将btw_bijtellen
分配给onclick
,请从问题代码的最后一行删除()
。
使用()
,您正在调用该函数并将其返回值分配给onclick
。由于该函数没有return
语句,因此该值将为undefined
,这不是您想要的。