首页 > 解决方案 > 为什么该功能不会在点击时发出警报?

问题描述

我不太确定为什么下面的代码在浏览器中不起作用。有任何想法吗?

<!DOCTYPE html>

<html>

<script>
  function click() {
    alert("You clicked on a paragraph");
  }
</script>

<body>
  <p onclick="click()" id="paragraph">This is a paragraph</p>
</body>

</html>

我想出了如何使用该document.getElementById功能执行上述操作(见下文)。

<!DOCTYPE html>

<html>

<script>
  function click() {
    alert("You clicked on a paragraph");
  }
</script>

<body>
  <p id="paragraph">This is a paragraph</p>
</body>

<script>
  document.getElementById("paragraph").onclick = function() {
    click();
  }
</script>

</html>

我的问题是为什么第一种方法不起作用?

标签: javascriptonclickdom-events

解决方案


您的第一个函数不起作用,因为click()它是 JavaScript 中的一个内置函数,它模拟鼠标单击元素。这是一个演示。因此,当您单击段落时,首先执行内置函数,而不是通过函数显示消息的alert()函数

由于您的第二个函数是匿名函数,因此它执行时没有任何错误。

要解决它,只需将其重命名为除内置函数名称之外的任何其他名称。例如,请参阅下面的代码片段。

<!DOCTYPE html>

<html>

<body>
  <script>
      function alertOnclick() {
        alert("You clicked on a paragraph");
      }
  </script>
  <p onclick="alertOnclick()" id="paragraph">
    This is a paragraph
  </p>
</body>

</html>


推荐阅读