addeventlistener不起作用,事件不等待点击

时间:2019-01-27 01:47:35

标签: javascript html button addeventlistener

我正在为网页执行Javascript练习,我想要的是在单击按钮时出现一行文本,问题是文本只是在单击按钮之前出现。我所有的标签和ID都是正确的。

document.getElementById("earth_time").setAttribute("hidden", true);
ocument.getElementById("earth_time_check").addEventListener("onclick", earthTime());
function earthTime(){
document.getElementById("earth_time").innerHTML = Date();
document.getElementById("earth_time").hidden = false;}

2 个答案:

答案 0 :(得分:1)

您的代码对我来说很好,除非您可能在第二行代码中出现印刷错误。

document.getElementById("earth_time").setAttribute("hidden", true);
document.getElementById("earth_time_check").addEventListener("onclick", 
earthTime);

// define function earthTime
function earthTime(){
document.getElementById("earth_time").innerHTML = Date();
document.getElementById("earth_time").hidden = false;
}

答案 1 :(得分:1)

问题是,您尝试将事件监听器设置为调用earthTime函数的结果,并且实际上是undefined,因为您没有从中返回任何内容。

设置事件监听器的正确方法是:

document.getElementById("earth_time").setAttribute("hidden", true);
// earthTime is without calling brackets
document.getElementById("earth_time_check").addEventListener("onclick", earthTime);

function earthTime(){
  document.getElementById("earth_time").innerHTML = Date();
  document.getElementById("earth_time").hidden = false;
}