这个问题在这里已有答案:
函数tablePush
在点击某个项目时将id推送到表格。
但是,它没有点击运行,我不明白为什么。
这是我的代码:
function tablePush() {
console.log('OK');
if (pickPicture) {
console.log('TRUE');
} else {
console.log('on rentre dans le else');
console.log(this);
var idPic = this.getAttribute('id');
console.log(idPic);
table.push(idPic);
pickPicture = true;
}
}
var picture = document.getElementsByClassName('picture'),
table = [],
pickPicture = false;
for (var i = 0; i < picture.length; i++){
picture[i].addEventListener('click', tablePush());
}
你在叫它。
你需要注册函数tablePush
(而不是调用它):
picture[i].addEventListener('click', tablePush);
这条线:
picture[i].addEventListener('click', tablePush());
^^
不添加函数tablePush
,但调用tablePush()
的结果。这是如此,因为最后的parens ()
意味着“现在调用此函数”。要更正您的代码,请使用:
picture[i].addEventListener('click', tablePush);
^ no parens
您在添加事件侦听器时调用该函数。
你需要更新
picture[i].addEventListener('click', tablePush());
至
picture[i].addEventListener('click', tablePush);