Javascript 未在HtmlButtoneElement.onclick上定义函数

Javascript 未在HtmlButtoneElement.onclick上定义函数,javascript,html,css,Javascript,Html,Css,我试图使一些控制框向左、向右、向上和向下移动。但是当我在script标记中创建所有函数时,它会得到一个错误(在所有四个onclick按钮中): 未在HtmlButtoneElement.onclick上定义函数 在我制作按钮标签的行中 左边 赖特 向上的 向下 #盒子{ 宽度:50px; 高度:50px; 背景色:黑色; } var-box=document.getElementById(“box”); 函数leftmove(){ 保证金+=2; box.style.marginLeft=ma

我试图使一些控制框向左、向右、向上和向下移动。但是当我在script标记中创建所有函数时,它会得到一个错误(在所有四个
onclick
按钮中):

未在HtmlButtoneElement.onclick上定义函数

在我制作按钮标签的行中


左边
赖特
向上的
向下
#盒子{
宽度:50px;
高度:50px;
背景色:黑色;
}
var-box=document.getElementById(“box”);
函数leftmove(){
保证金+=2;
box.style.marginLeft=margin+“px”;
}
var-box=document.getElementById(“box”);
函数rightmove(){
保证金-=2;
box.style.marginLeft=margin+“px”;
}
var-box=document.getElementById(“box”);
函数上移(){
保证金+=2;
box.style.marginTop=页边距+“px”;
}
var-box=document.getElementById(“box”);
函数下移(){
保证金-=2;
box.style.marginLeft=margin+“px”;
}
当使用像这样的标签时,必须在使用前定义功能和目标标签。为了使示例有效,您必须拆分脚本标记以首先定义函数,然后在定义相应标记后设置
变量。另外,
margin
变量丢失,我添加的是零,但这可能不是您想要的。工作示例:


var保证金=0;
函数leftmove(){
保证金+=2;
box.style.marginLeft=margin+“px”;
}
函数rightmove(){
保证金-=2;
box.style.marginLeft=margin+“px”;
}
函数上移(){
保证金+=2;
box.style.marginTop=页边距+“px”;
}
var-box=document.getElementById(“box”);
函数下移(){
保证金-=2;
box.style.marginLeft=margin+“px”;
}
左边
赖特
向上的
向下
#盒子{
宽度:50px;
高度:50px;
背景色:黑色;
}
var-box=document.getElementById(“box”);

创建了一些JavaScript变量来间接操作CSS。为了更好地理解这些运动,还实施了其他内容


#盒子{
利润率:100像素;
宽度:50px;
高度:50px;
背景色:黑色;
}
开始
左边
赖特
向上的
向下
var-box=document.getElementById(“box”);
var保证金=10;
var-marginX=100;
var marginY=100;
函数start(){
box.style.margin=“100px”;
marginX=100;
marginY=100;
}
函数leftmove(){
保证金-=保证金;
box.style.marginLeft=marginX+“px”;
}
函数rightmove(){
保证金x+=保证金;
box.style.marginLeft=marginX+“px”;
}
函数上移(){
保证金-=保证金;
box.style.marginTop=marginY+“px”;
}
函数下移(){
保证金+=保证金;
box.style.marginTop=marginY+“px”;
}

块与函数一起移动到将使用这些函数的元素之前(在您的情况下,您将使用
标记)。没有正文标记不是问题,只是没有定义可变边距,@Andreas是正确的,但是浏览器可能会运行它。@Tacosh您只允许在特定情况下忽略
标记(请参阅链接)。如果OP将
移动到
上方,则无法再忽略
。只是因为有些东西“有效”并不意味着它有效。安德烈亚斯,我知道这一点。然而,这不是这里的问题。这里的问题是,脚本正在使用尚未定义的变量。ehre提供的代码片段只是被删减了,并不完整。但是liek I说,缺失的病毒首先阻碍了脚本的运行。