无法将事件监听器添加到API中的元素

累眼

我正在使用API​​构建Trivia Webapp,我想向按钮添加事件监听器并提供正确答案,以便用户单击它时将显示一条消息,说明他们是对的,并且会收到一个新问题。代码如下所示:

function useApiData(triviaObj) {
  let answers = sortArrayRandomly([
    triviaObj.results[0].correct_answer,
    triviaObj.results[0].incorrect_answers[0],
    triviaObj.results[0].incorrect_answers[1],
    triviaObj.results[0].incorrect_answers[2],
  ]);

  document.querySelector("#category").innerHTML = `Category: ${triviaObj.results[0].category}`;
  document.querySelector("#difficulty").innerHTML = `Difficulty: ${triviaObj.results[0].difficulty}`;
  document.querySelector("#question").innerHTML = `Question: ${triviaObj.results[0].question}`;

  document.querySelector("#answer1").innerHTML = `${answers[0]}`;
  document.querySelector("#answer2").innerHTML = `${answers[1]}`;
  document.querySelector("#answer3").innerHTML = `${answers[2]}`;
  document.querySelector("#answer4").innerHTML = `${answers[3]}`;

  let rightAnswer = triviaObj.results[0].correct_answer;
  rightAnswer.addEventListener("click", correctAnswer);

  console.log(answers);
}

function correctAnswer() {
  alert("correct");
  getTrivia();
}

它告诉我AddEventListener不是一个函数,我该如何解决?

巴尔玛

使用循环填充答案元素。在该循环中,您可以检查当前答案是否为正确答案,并添加事件侦听器。

answers.forEach((answer, i) => {
  let button = document.querySelector(`#answer${i+1}`);
  button.innerHTML = answer;
  if (answer == triviaObj.results[0].correct_answer) {
    button.addEventListener("click", correctAnswer);
  } else {
    button.removeEventListener("click", correctAnswer);
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将事件监听器添加到if语句

动态将事件监听器添加到dom

有什么方法可以将事件监听器添加到类中吗?

将事件监听器添加到表单中的提交按钮

冻结添加到事件监听器函数的变量

通过WebExtension将事件监听器添加到所有嵌入式YouTube视频中

Javascript,将事件监听器添加到所有按钮

将事件监听器的on('change')添加到Google Maps信息窗口

将JS事件监听器添加到Chrome扩展弹出窗口

将事件监听器添加到具有相同类名但ID不同的div会覆盖以前的事件监听器

卡住了将列表选择监听器添加到程序中

PHP 元素添加事件监听器

React SSR:事件监听器和渲染未添加到服务器渲染的代码中吗?

在WordPress中添加事件监听器

在实现弱监听器时,将监听器添加到哪种源类型?(Java)

将事件侦听器添加到使用Javascript从API捕获的动态生成的元素中

如何将监听器添加到分频器位置?

添加事件监听器

如何鼠标监听器添加到JOptionPane的按钮?

将监听器添加到Diff Clamp,React Native

将监听器添加到Chrome“自定义标签”“关闭”按钮

如何在Chrome扩展程序的内容脚本中将事件监听器添加到Google表格链接?

一次选中所有事件监听器后,将其添加到复选框

在html中动态添加事件监听器

在Vue中添加键盘事件监听器

使用jQuery将事件侦听器添加到动态添加的元素中

无法在GoogleMaps中删除事件监听器

无法从文档中删除事件监听器

无法在事件监听器中执行功能