javascript - onClick() 触发器在 Firebase webapp 上不起作用
问题描述
最近我开始使用 HTML 并创建了一个 Firebase 网络应用程序。我使用 Codepen 创建了一个基本项目,其中图像元素(cookie)与 onClick() 事件相关联。有效。然后我将它上传到 Firebase 并尝试运行它,但它没有用。
HTML
<html>
<title>Aries - Cookie Clicker</title>
<link rel="stylesheet" type="text/css" href="main.css" />
<script src="main.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico"/>
<h1>Cookie Clicker </h1>
<div>
<img id="cookie" src="http://pngimg.com/uploads/cookie/cookie_PNG13656.png" ondragstart="return false;"/>
</div>
<div id="scoresection">
<div class="scoretext">
<h2 id="counter">+1</h2>
<h2> Cookies Clicked: </h2>
<p id="score" class="numbers">0</p>
</div>
</div>
<button onclick="resetClick()">Reset</button>
CSS
width: 300px;
margin: auto;
}
.numbers{
font-size: 60px;
}
#scoresection{
width: 600px;
margin: auto;
}
body{
font-family: arial;
text-align: center;
background-image: url("https://media.giphy.com/media/BHNfhgU63qrks/giphy.gif");
background-repeat: no-repeat;
background-size: cover;
color: white;
cursor: crosshair;
}
#counter{
visibility: hidden;
position: relative; left: 200px; bottom: 200px;
font-size: 40px;
animation-name: plusOne;
animation-duration: 2s;
animation-iteration-count: 1;
}
@keyframes plusOne{
from{left: 200px; bottom: 200px;}
to{left: 200px; bottom: 300px;}
}
button{
padding: 10px;
background-color: yellow;
}
cookie.pointer{
cursor: pointer;
}
#reset{
cursor: pointer
}
JavaScript
var cookie = document.getElementById("cookie");
var points = 0;
var counter = document.getElementById("counter")
cookie.onclick = addClick;
function addClick() {
points += 1;
score.innerHTML = points;
counter.style.visibility = 'visible';
}
reset.onClick = resetClick;
function resetClick() {
location.reload();
}
正如您可能看到的那样,它非常简单,但有些帮助会很棒。谢谢!
解决方案
我已将您的代码复制到我身边,需要更新代码。
- 首先你应该在元素下放置包含 javascript 代码。浏览器将在一个流程中从头到尾编译脚本,因此顺序对于捕获代码中的元素至关重要。
- 您不必通过 javascript 将 onclick 链接到 resetbutton,因为在定义重置按钮时它已经绑定到 onclick 事件。
并且您应该保留典型的 html 表单,因为您的代码中缺少一些标签。所以你应该像下面这样更新html代码。
<html>
<title>Aries - Cookie Clicker</title>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico"/>
</head>
<body>
<h1>Cookie Clicker </h1>
<div>
<img id="cookie" src="http://pngimg.com/uploads/cookie/cookie_PNG13656.png" ondragstart="return false;"/>
</div>
<div id="scoresection">
<div class="scoretext">
<h2 id="counter">+1</h2>
<h2> Cookies Clicked: </h2>
<p id="score" class="numbers">0</p>
</div>
</div>
<button onclick="resetClick()">Reset</button>
<script src="main.js"></script>
</body>
</html>
我已将其部署到 Firebase 托管,并且可以正常工作! https://mytest-beb7e.web.app/
推荐阅读
- javafx - fxml 加载程序异常“已指定根值”我从未指定根值
- asp.net-mvc - VS2019 ASP.NET MVC“无法导航到插入符号下的符号”
- python-3.x - 在以下代码中计算日期的最佳方法是什么?
- c++ - 如何使用多个deadline_timers?
- r - 使用配方在所有字段之间执行配对交互
- python - Python 显示具有正确设备名称的 OpenCV 视频 Windows 10
- terraform - Terraform 不接受可变默认插值或处理分层插值
- git - 有没有办法获取 git commit 节点的子节点数量?
- git - 如何在 Gitlab 上将 Master 分支中的文件移动到 Master 分支中的文件夹
- mysql - 错误:错误 1022:无法写入;表“食谱”中的重复键