通过页面加载而非点击触发的onclick功能

时间:2017-11-14 14:53:37

标签: javascript onclick

我一直在用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

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

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

非常感谢 学家

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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