javascript - 为什么该功能不会在点击时发出警报?
问题描述
我不太确定为什么下面的代码在浏览器中不起作用。有任何想法吗?
<!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>
我的问题是为什么第一种方法不起作用?
解决方案
您的第一个函数不起作用,因为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>
推荐阅读
- java - RETURN_BLANK_AS_NULL 无法解析 Apachi POI 5.0
- javascript - 无法设置无以在 JavaScript 中显示属性
- javascript - 当用户滚动页面时,从 API 加载更多数据。反应
- javascript - 仅在上下文值更新时有条件地重新渲染
- pandas - 将 pandas 数据框写入 dynamodb
- java - 如何使用 scala 代码编译 java 记录?
- python - 检查相邻(有额外条件)
- python - idxmax() 时 Pandas 中的类型错误
- bash - 命名管道吞下 Linux 命令输出的第一个字段
- javascript - 如何获取对象数组并减少它,以便组合重复对象键处的数据?