JS:事件分配
JS: event assignation
我还在学习 JavaScript 的基础知识,我现在正在学习事件,我 运行 有疑问:
为什么onclick函数必须在赋值中声明?
我有这个计数器代码,当你点击一个按钮时它会上升:
let button1 = document.getElementById("button1");
button1.onclick=function add1(){
let input1 = document.getElementById("input1");
input1.value = parseInt(input1.value) + 1;
}
此代码可以正常工作,但是如果我尝试像这样重构代码:
function add1(){
let input1 = document.getElementById("input1");
input1.value = parseInt(input1.value) + 1;
}
let button1 = document.getElementById("button1");
button1.onclick = add1();
没有。该函数仅在页面加载时自行执行一次,而不是在单击时执行。
我想知道这里有什么区别?
要使其正常工作,请删除您正在执行赋值的 ()
,因为这是调用函数的运算符。
button1.onclick = add1; // No parentheses
现在您正在将函数对象赋值给 .onclick
属性,以便浏览器的内部事件系统可以在适当的事件发生时调用该函数。
我还在学习 JavaScript 的基础知识,我现在正在学习事件,我 运行 有疑问:
为什么onclick函数必须在赋值中声明?
我有这个计数器代码,当你点击一个按钮时它会上升:
let button1 = document.getElementById("button1");
button1.onclick=function add1(){
let input1 = document.getElementById("input1");
input1.value = parseInt(input1.value) + 1;
}
此代码可以正常工作,但是如果我尝试像这样重构代码:
function add1(){
let input1 = document.getElementById("input1");
input1.value = parseInt(input1.value) + 1;
}
let button1 = document.getElementById("button1");
button1.onclick = add1();
没有。该函数仅在页面加载时自行执行一次,而不是在单击时执行。
我想知道这里有什么区别?
要使其正常工作,请删除您正在执行赋值的 ()
,因为这是调用函数的运算符。
button1.onclick = add1; // No parentheses
现在您正在将函数对象赋值给 .onclick
属性,以便浏览器的内部事件系统可以在适当的事件发生时调用该函数。