我有两个按钮,这两个按钮都会触发单击时运行的功能,但具有不同的参数。它们应该仅在页面上的特定元素存在时单击它们时触发该功能。
JS代码:
if (pageExists != null) {
document.getElementById('button1').onclick = function(53);
document.getElementById('button2').onclick = function(23);
}
按钮html(它们是ID以外的相同副本):
<a href="nextpage.html"><button type="button" id="button1">click here</button></a>
它调用的函数将该参数存储在LocalStorage中,然后它应该使用html代码转到下一页。使用断点显示一旦页面加载,它就会存储53个,然后是23个。大写和ID都是正确的。
在执行此功能之前,我该怎么做才能让它等到两个按钮之一被点击?我不能使用jquery。
答案 0 :(得分:4)
您正在调用函数而不是设置要调用的函数,因此当运行代码来设置事件处理程序时,它们运行function(53)
然后将处理程序设置为该函数调用的返回值,这是无效的。相反,您希望将其设置为函数。试试这个:
if (pageExists != null) {
document.getElementById('button1').onclick = function.bind(53);
document.getElementById('button2').onclick = function.bind(23);
}
如果由于兼容性原因而无法使用.bind
(这也可以更好地解释):
if (pageExists != null) {
document.getElementById('button1').onclick = function() {
function(53);
};
document.getElementById('button2').onclick = function() {
function(23);
};
}
请注意,我假设您的功能实际上并未被称为function
,因为它是保留的关键字。