HTML5的点击同时发送给两个按钮
HTML5 click is sent to two buttons simultaneously
这是关于我之前关于移动简笔画按钮点击的问题。
新的问题是,点击会同时发送到两个按钮。
左按钮和右按钮都可以正常工作。上下都搞砸了。
<!DOCTYPE html>
<html>
<style>
#stage{
width: 100px;
height: 100px;
position: relative;
border-style: dashed;
border-color: gray;
border-width: medium;
}
#actor{
width: 13px;
height: 15px;
position: absolute;
left: 0;
top: 0;
background-image: url("E:/Website Projects/man.PNG");
-webkit-transition: all 2s ease-out 0s;
-moz-transition: all 2s ease-out 0s;
transition: all 2s ease-out 0s;
}
</style>
<body>
<div id="stage">
<div id="actor"></div>
</div>
<div>
<button class="control" id="top">TOP</button> <br>
<button class="control" id="left">LEFT</button> <button class="control" id="right">RIGHT</button> <br>
<button class="control" id="down">DOWN</button>
</div>
</body>
<script>
var vertical = 0;
var horizontal = 0;
var shift = 5;
var top = document.querySelector("#top");
var left = document.querySelector("#left");
var right = document.querySelector("#right");
var down = document.querySelector("#down");
top.addEventListener("click",moveTop,false);
left.addEventListener("click",moveLeft,false);
right.addEventListener("click",moveRight,false);
down.addEventListener("click",moveDown,false);
function moveTop(){
var actor = document.querySelector("#actor");
if(vertical>0){
--vertical;
actor.style.top = shift*vertical + "px";
console.log("TOP " + "VERTICAL: " + vertical);
}
}
function moveDown(){
var actor = document.querySelector("#actor");
if(vertical<17){
++vertical;
actor.style.top = shift*vertical + "px";
console.log("DOWN " + "VERTICAL: " + vertical);
}
}
function moveRight(){
var actor = document.querySelector("#actor");
if(horizontal<17){
++horizontal;
actor.style.left = shift*horizontal + "px";
console.log("RIGHT " + "HORIZONTAL: " + horizontal);
}
}
function moveLeft(){
var actor = document.querySelector("#actor");
if(horizontal>0){
--horizontal;
actor.style.left = shift*horizontal + "px";
console.log("LEFT " + "HORIZONTAL: " + horizontal);
}
}
</script>
</html>
控制台日志
DOWN VERTICAL: 1 floating%20man.html:71
TOP VERTICAL: 0 floating%20man.html:62
这是点击down
的登录。Top
不会工作,因为这就是它的编码方式。Top
只有在vertical
非零值时才会工作
为什么会发生这种情况?如何解决?
标识符top
已经在web浏览器中使用,并且指的是框架集的最顶层窗口(或者当前窗口,如果没有框架)。至少在Chrome上,你不能覆盖它。你必须为你的按钮引用选择一个新的变量名。
工作版本:http://jsbin.com/uzanom/1/edit
相关文章:
- 根据两个下拉列表的默认值禁用按钮
- 两个按钮在初次点击后会触发相同的功能
- 解耦按钮(两个按钮同时切换),并根据数据显示相应的按钮
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- 如何使用相同的按钮点击两个功能
- 一个具有两个图像按钮的表单在只能按下一个按钮的情况下发送两个按钮值
- 两个提交按钮,但第一个返回空
- 选择两个单选按钮
- 如何停止两个按钮执行相同的工作?在这种情况下,它们都会滚动到顶部
- 如何将两个按钮组合为一个
- 使用一个输入作为两个按钮的值
- 两个提交按钮(一个隐藏,一个可见)
- ExtJS--如何居中对齐两个工具栏按钮
- 在两个按钮上的单击事件上,使用 jQuery 获取未按下按钮的值
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- 具有两个提交按钮和两个不同操作的 HTML 表单
- (Angular+Bootstrap)如何阻止两个日期选择器被同一按钮打开
- 两个不同提交按钮的javascript验证
- 我可以用javascript给一个按钮两个命令吗
- 一个按钮两个动作