我一直在用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
我已经尝试过不同的方法来做到这一点,但是无法解决这个问题,
我希望有人能给我一个提示:)
非常感谢 学家
答案 0 :(得分:2)
这是因为您必须将函数传递给onclick属性,而不是函数调用。我的意思是,你不能在点击时调用你想要调用的函数,而是传递对函数的引用。
所以,如果你想调用sendButtonId,只需写:
document.getElementById('traffBut').onclick = sendButtonId;
但是,由于您要为函数调用添加参数,您必须创建一个新函数,该函数将在调用时自动应用此参数。它可以使用.bind来完成,它返回一个带有给定参数的新函数:
document.getElementById('traffBut').onclick = sendButtonId.bind(this, 'traffButton');