gpt4 book ai didi

javascript - Onclick 函数由页面加载而不是点击触发

转载 作者:行者123 更新时间:2023-11-30 14:55:51 25 4
gpt4 key购买 nike

我一直在使用实际上随页面/窗口加载触发的 onclick 触发器搜索此问题,但可以找到以下解决方案。

我需要最新点击按钮的 ID,所以我这样做了:

 var lastButtonId = [];//to get the latest Id
// then the onclick statements:
document.getElementById('traffBut').onclick = sendButtonId('traffButton');
document.getElementById('convBut').onclick = sendButtonId('convBut');
document.getElementById('revBut').onclick = sendButtonId('revBut');
document.getElementById('tranBut').onclick = sendButtonId('tranBut');
//Below the funstion to get the last Id:
function sendButtonId (clikedButton)
{
lastButtonId.splice (0,1,clikedButton);
console.log(lastButtonId);
}

但控制台在页面加载时显示以下内容: Click here to see console logs

我已经尝试过不同的方法来做到这一点,但无法解决它,

我希望有人能给我提示:)

非常感谢J.

最佳答案

这是因为您必须将函数 传递给onclick 属性,而不是函数调用。我的意思是,您不能在点击时调用您希望调用的函数,而是传递对该函数的引用。

所以,如果你想调用sendButtonId,只需要写:

document.getElementById('traffBut').onclick = sendButtonId;

但是,由于您要向函数调用添加参数,因此必须创建一个新函数,该函数将在调用时自动应用此参数。可以使用 .bind 来完成,它返回一个具有给定参数的新函数:

document.getElementById('traffBut').onclick = sendButtonId.bind(this, 'traffButton');

关于javascript - Onclick 函数由页面加载而不是点击触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47288749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com