提问人:Mat 提问时间:4/15/2022 更新时间:4/15/2022 访问量:282
OnClick 功能从打开页面开始
OnClick function starting at opening page
问:
这听起来可能很愚蠢,但我写了一些代码来将二进制转换为普通数字。我有一个按钮,您必须按下该按钮才能运行整个功能。但是,在不单击按钮的情况下,该功能启动了。
let button = document.getElementById("submit");
let binary;
let result = document.createElement("h1");
result.className = "answer";
button.addEventListener("click", calc());
function calc(){
binary = document.getElementById("binary").value;
result.textContent = "The Result is: " + parseInt(binary, 2);
document.body.appendChild(result);
console.log('here');
}
当我加载页面时,“结果是”文本已经存在,当我单击它时,它不会控制台记录或更改值。 这可能很愚蠢,但我无法弄清楚 提前致谢。
答:
1赞
Samatar Abdi
4/15/2022
#1
我从您的代码中看到的问题是您在 addEventListener 方法中调用了该函数,相反,您应该这样编写它,您应该传递而不是 .calc()
button.addEventListener("click", calc);
calc
calc()
评论
2赞
Dave Pritlove
4/15/2022
这是正确答案,事件侦听器的第二个参数必须是函数或对函数的引用,而不是对函数的调用(该函数将凭借 invoke 运算符立即执行)()
)
0赞
Sayan Dasgupta
4/15/2022
#2
使用这个:
let button = document.getElementById("submit");
let binary;
let result = document.createElement("h1");
result.className = "answer";
button.addEventListener("click",(e)=>{
e.preventDefault();
calc();
});
function calc(){
binary = 1000101; // get binary
result.textContent = "The Result is: " + parseInt(binary, 2);
document.body.appendChild(result);
console.log('here');
}
<button id ="submit">
Submit
</button>
<br>
上一个:模态不会消失
评论
button.addEventListener("click", calc);
addEventListener
("click", calc)