Onclick被连续调用

onclick is being called continuously

本文关键字:调用 连续 Onclick      更新时间:2023-09-26

我有一些HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div onclick="postClick()" class="btn-simple" id="button">Solve</div>
<div id="message">
  <p></p>
</div>
<script>
  function postClick() {
    answers = ["A", "B", "C"]
    rand = answers[Math.floor(Math.random() * answers.length)];
    document.getElementById("message").innerHTML = "<p>" + rand + "</p>";
    $.ajax({
      type: 'POST',
      url: 'somefile.php',
      dataType: 'text',
      success: function(msg) {
        if (msg) {
          window.location = msg;
        }
      }
    });
  }
</script>

在我第一次点击按钮之前,一切都很好。但一旦我点击了按钮,屏幕就会自动随机循环显示答案,就好像我每半秒左右点击一次按钮一样。我想要的是每次点击都显示不同的答案。

我做错了什么?

编辑:

如果我记录函数的调用者,通过

arguments.callee.caller.toString()

它是按钮点击:

function onclick(event) { postClick() }

我发现了问题,但是我不明白。下面的脚本导致事件一直被触发。

<script src="//assets.codepen.io/assets/editor/live/events_runner-21174b4c7273cfddc124acb0876792e0.js"></script>