我的“投票地图”程序需要一个“tweek”
My "vote map" program needs a "tweek"
大家好,祝大家圣诞快乐!我正在制作一个"投票地图"程序,有点像《使命召唤》中的程序,只是作为学习javascript的练习。
它目前按照我最初想要的样子进行,但我想更进一步。目前,如果您在下面运行我的程序,您将看到有两个带有不同地图的按钮。你注定只有一票,实际上只能把它"花"在一张地图上;地图的选择可以随时更改。
如果单击地图 1,则得票数将增加 1,但再次单击时不会再增加。如果单击地图 2,则得票数将增加 1,但再次单击时不会再增加。
但是,这只有效一次。例如,我按地图 1,然后按地图 2;这非常有效,但是当我尝试再次单击地图 1 时,它不起作用。
请记住,我才刚刚开始 JavaScript;我认为这是一个练习的好主意,因为它在视频游戏中很常见。
谢谢你帮助:D。
<html>
<head>
<link rel="stylesheet" type="text/css" href="mycss.css">
</head>
<body>
<p><strong><i>Vote for your preferred map.</i></strong></p>
<button id="map1" onclick="addVotes()">Forest Map </button>
<button id="map2" onclick="addVotes2()">City Map</button>
<p id="votesForMap1"></p>
<p id="votesForMap2"></p>
<script>
var $num_of_votes = 0;
var clicks_for_map_1 = 0;
var clicks_for_map_2 = 0;
var map1votes = 0;
var map2votes = 0;
document.getElementById("votesForMap1").innerHTML = map1votes;
document.getElementById("votesForMap2").innerHTML = map2votes;
var addVotes = function() {
if (clicks_for_map_2 === 0) {
document.getElementById("votesForMap1").innerHTML = map1votes + 1;
if (votesForMap2 === 1) {
document.getElementById("votesForMap2").innerHTML = map2votes - 1;
}
clicks_for_map_2 = clicks_for_map_2 + 1;
$num_of_votes = $num_of_votes + 1;
if ($num_of_votes === 1) {
map1votes = map1votes + 1;
document.getElementById("votesForMap1").innerHTML = map1votes;
}
}
}
var addVotes2 = function() {
if (clicks_for_map_1 === 0) {
document.getElementById("votesForMap2").innerHTML = map2votes + 1;
if (votesForMap1 === 1) {
document.getElementById("votesForMap2").innerHTML = map2votes - 1;
}
document.getElementById("votesForMap1").innerHTML = map1votes - 1;
clicks_for_map_1 = clicks_for_map_1 + 1;
$num_of_votes = $num_of_votes + 1;
if ($num_of_votes === 1) {
map2votes = map2votes + 1;
document.getElementById("votesForMap2").innerHTML = map2votes
}
}
}
</script>
</body>
</html>
有几件事我会调整。 原因是不起作用的是,如果您投票给地图 2,当您再次投票给第一张地图时,没有else
条件。
我建议您制作一个投票功能并引用单击的目标元素。 这将允许您将逻辑保持在一起并更加紧凑。 您还可以添加更多地图,而无需一遍又一遍地复制和粘贴相同的功能。
如果我理解得很好,正如你所说:
你注定只有一票,实际上只能"花"它 在一张地图上;地图的选择可以随时更改。
在这种情况下,您应该使用单选按钮。
但是,如果你想累积所有用户完成的投票,你应该考虑使用例如Ajax来检索和更新服务器中的投票计数。
如果我弄错了,请纠正我。
希望有用!
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 表追加而不附加最后一个元素
- 我如何找到一个句子中的所有空格并替换忽略它们
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用类从一个标记中双击事件
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 我应该如何从xml文件构建一个javascript页面
- Regex代码只允许一个空格
- 我的“投票地图”程序需要一个“tweek”